TSTP Solution File: ALG258^1 by Zipperpin---2.1.9999

View Problem - Process Solution

%------------------------------------------------------------------------------
% File     : Zipperpin---2.1.9999
% Problem  : ALG258^1 : TPTP v8.1.2. Bugfixed v5.2.0.
% Transfm  : NO INFORMATION
% Format   : NO INFORMATION
% Command  : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.Hqsl0p5v8H true

% Computer : n024.cluster.edu
% Model    : x86_64 x86_64
% CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 2.10GHz
% Memory   : 8042.1875MB
% OS       : Linux 3.10.0-693.el7.x86_64
% CPULimit : 300s
% WCLimit  : 300s
% DateTime : Wed Aug 30 17:12:31 EDT 2023

% Result   : Theorem 19.23s 3.06s
% Output   : Refutation 19.23s
% Verified : 
% SZS Type : Refutation
%            Derivation depth      :   46
%            Number of leaves      :  119
% Syntax   : Number of formulae    :  202 (  98 unt;  49 typ;   0 def)
%            Number of atoms       : 3336 ( 885 equ;  43 cnn)
%            Maximal formula atoms :  145 (  21 avg)
%            Number of connectives : 11728 ( 119   ~;   3   |;  94   &;7778   @)
%                                         (   0 <=>;1740  =>;   0  <=;   0 <~>)
%            Maximal formula depth :   44 (   8 avg)
%            Number of types       :    3 (   2 usr)
%            Number of type conns  :  305 ( 305   >;   0   *;   0   +;   0  <<)
%            Number of symbols     :   51 (  47 usr;  40 con; 0-4 aty)
%                                         (1994  !!;   0  ??;   0 @@+;   0 @@-)
%            Number of variables   : 2464 (2020   ^; 444   !;   0   ?;2464   :)

% Comments : 
%------------------------------------------------------------------------------
thf(term_type,type,
    term: $tType ).

thf(subst_type,type,
    subst: $tType ).

thf(axmap_type,type,
    axmap: $o ).

thf('#sk491_type',type,
    '#sk491': term ).

thf(axclos_type,type,
    axclos: $o ).

thf(lam_type,type,
    lam: term > term ).

thf(lamnotap_type,type,
    lamnotap: $o ).

thf(axvarcons_type,type,
    axvarcons: $o ).

thf(substmonoid_type,type,
    substmonoid: $o ).

thf(push_type,type,
    push: term > subst > subst ).

thf(axshiftcons_type,type,
    axshiftcons: $o ).

thf(hoasapinj1_type,type,
    hoasapinj1: $o ).

thf(axapp_type,type,
    axapp: $o ).

thf(shinj_type,type,
    shinj: $o ).

thf(hoasap_type,type,
    hoasap: subst > term > subst > term > term ).

thf(hoaslaminj_type,type,
    hoaslaminj: $o ).

thf('#sk467_type',type,
    '#sk467': subst ).

thf(one_type,type,
    one: term ).

thf('#sk374_type',type,
    '#sk374': subst > term > term ).

thf(id_type,type,
    id: subst ).

thf(comp_type,type,
    comp: subst > subst > subst ).

thf(induction2_type,type,
    induction2: $o ).

thf(axvarid_type,type,
    axvarid: $o ).

thf(axvarshift_type,type,
    axvarshift: $o ).

thf(induction2lem_type,type,
    induction2lem: $o ).

thf(sh_type,type,
    sh: subst ).

thf(laminj_type,type,
    laminj: $o ).

thf(ulamvarind_type,type,
    ulamvarind: $o ).

thf(apinj2_type,type,
    apinj2: $o ).

thf(ulamvarsh_type,type,
    ulamvarsh: $o ).

thf('#sk263_type',type,
    '#sk263': subst > term > term ).

thf(lamnotvar_type,type,
    lamnotvar: $o ).

thf(apnotvar_type,type,
    apnotvar: $o ).

thf(pushprop_type,type,
    pushprop: $o ).

thf(sub_type,type,
    sub: term > subst > term ).

thf(apinj1_type,type,
    apinj1: $o ).

thf(axidl_type,type,
    axidl: $o ).

thf(ap_type,type,
    ap: term > term > term ).

thf(termmset_type,type,
    termmset: $o ).

thf(hoasapinj2_type,type,
    hoasapinj2: $o ).

thf(var_type,type,
    var: term > $o ).

thf(axassoc_type,type,
    axassoc: $o ).

thf(hoaslam_type,type,
    hoaslam: subst > ( subst > term > term ) > term ).

thf(hoaslaminj_gthm_type,type,
    hoaslaminj_gthm: $o ).

thf(axidr_type,type,
    axidr: $o ).

thf(axabs_type,type,
    axabs: $o ).

thf(ulamvar1_type,type,
    ulamvar1: $o ).

thf(induction_type,type,
    induction: $o ).

thf(axscons_type,type,
    axscons: $o ).

thf(hoaslaminj_gthm,axiom,
    ( hoaslaminj_gthm
    = ( axapp
     => ( axvarcons
       => ( axvarid
         => ( axabs
           => ( axclos
             => ( axidl
               => ( axshiftcons
                 => ( axassoc
                   => ( axmap
                     => ( axidr
                       => ( axvarshift
                         => ( axscons
                           => ( ulamvar1
                             => ( ulamvarsh
                               => ( ulamvarind
                                 => ( apinj1
                                   => ( apinj2
                                     => ( laminj
                                       => ( shinj
                                         => ( lamnotap
                                           => ( apnotvar
                                             => ( lamnotvar
                                               => ( induction
                                                 => ( pushprop
                                                   => ( induction2lem
                                                     => ( induction2
                                                       => ( substmonoid
                                                         => ( termmset
                                                           => ( hoasapinj1
                                                             => ( hoasapinj2
                                                               => hoaslaminj ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

thf('0',plain,
    ( hoaslaminj_gthm
    = ( axapp
     => ( axvarcons
       => ( axvarid
         => ( axabs
           => ( axclos
             => ( axidl
               => ( axshiftcons
                 => ( axassoc
                   => ( axmap
                     => ( axidr
                       => ( axvarshift
                         => ( axscons
                           => ( ulamvar1
                             => ( ulamvarsh
                               => ( ulamvarind
                                 => ( apinj1
                                   => ( apinj2
                                     => ( laminj
                                       => ( shinj
                                         => ( lamnotap
                                           => ( apnotvar
                                             => ( lamnotvar
                                               => ( induction
                                                 => ( pushprop
                                                   => ( induction2lem
                                                     => ( induction2
                                                       => ( substmonoid
                                                         => ( termmset
                                                           => ( hoasapinj1
                                                             => ( hoasapinj2
                                                               => hoaslaminj ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoaslaminj,axiom,
    ( hoaslaminj
    = ( ! [F: subst > term > term] :
          ( ! [M: subst,A: term,N: subst] :
              ( ( sub @ ( F @ M @ A ) @ N )
              = ( F @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
         => ! [G: subst > term > term] :
              ( ! [M: subst,A: term,N: subst] :
                  ( ( sub @ ( G @ M @ A ) @ N )
                  = ( G @ ( comp @ M @ N ) @ ( sub @ A @ N ) ) )
             => ( ( ( hoaslam @ id
                    @ ^ [M: subst,A: term] : ( F @ M @ A ) )
                  = ( hoaslam @ id
                    @ ^ [M: subst,A: term] : ( G @ M @ A ) ) )
               => ! [M: subst,A: term] :
                    ( ( F @ M @ A )
                    = ( G @ M @ A ) ) ) ) ) ) ) ).

thf('1',plain,
    ( hoaslaminj
    = ( ! [X4: subst > term > term] :
          ( ! [X6: subst,X8: term,X10: subst] :
              ( ( sub @ ( X4 @ X6 @ X8 ) @ X10 )
              = ( X4 @ ( comp @ X6 @ X10 ) @ ( sub @ X8 @ X10 ) ) )
         => ! [X12: subst > term > term] :
              ( ! [X14: subst,X16: term,X18: subst] :
                  ( ( sub @ ( X12 @ X14 @ X16 ) @ X18 )
                  = ( X12 @ ( comp @ X14 @ X18 ) @ ( sub @ X16 @ X18 ) ) )
             => ( ( ( hoaslam @ id
                    @ ^ [V_1: subst,V_2: term] : ( X4 @ V_1 @ V_2 ) )
                  = ( hoaslam @ id
                    @ ^ [V_3: subst,V_4: term] : ( X12 @ V_3 @ V_4 ) ) )
               => ! [X20: subst,X22: term] :
                    ( ( X4 @ X20 @ X22 )
                    = ( X12 @ X20 @ X22 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(hoasapinj2,axiom,
    ( hoasapinj2
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( hoasap @ id @ A @ id @ C )
            = ( hoasap @ id @ B @ id @ D ) )
         => ( C = D ) ) ) ) ).

thf('2',plain,
    ( hoasapinj2
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( hoasap @ id @ X4 @ id @ X8 )
            = ( hoasap @ id @ X6 @ id @ X10 ) )
         => ( X8 = X10 ) ) ) ),
    define([status(thm)]) ).

thf(hoasapinj1,axiom,
    ( hoasapinj1
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( hoasap @ id @ A @ id @ C )
            = ( hoasap @ id @ B @ id @ D ) )
         => ( A = B ) ) ) ) ).

thf('3',plain,
    ( hoasapinj1
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( hoasap @ id @ X4 @ id @ X8 )
            = ( hoasap @ id @ X6 @ id @ X10 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(hoaslam,axiom,
    ( hoaslam
    = ( ^ [M: subst,F: subst > term > term] : ( lam @ ( F @ sh @ one ) ) ) ) ).

thf('4',plain,
    ( hoaslam
    = ( ^ [M: subst,F: subst > term > term] : ( lam @ ( F @ sh @ one ) ) ) ),
    inference(simplify_rw_rule,[status(thm)],[hoaslam]) ).

thf('5',plain,
    ( hoaslam
    = ( ^ [V_1: subst,V_2: subst > term > term] : ( lam @ ( V_2 @ sh @ one ) ) ) ),
    define([status(thm)]) ).

thf(hoasap,axiom,
    ( hoasap
    = ( ^ [M: subst,A: term,N: subst,B: term] : ( ap @ ( sub @ A @ N ) @ B ) ) ) ).

thf('6',plain,
    ( hoasap
    = ( ^ [M: subst,A: term,N: subst,B: term] : ( ap @ ( sub @ A @ N ) @ B ) ) ),
    inference(simplify_rw_rule,[status(thm)],[hoasap]) ).

thf('7',plain,
    ( hoasap
    = ( ^ [V_1: subst,V_2: term,V_3: subst,V_4: term] : ( ap @ ( sub @ V_2 @ V_3 ) @ V_4 ) ) ),
    define([status(thm)]) ).

thf(termmset,axiom,
    ( termmset
    = ( ! [A: term] :
          ( ( sub @ A @ id )
          = A )
      & ! [A: term,M: subst,N: subst] :
          ( ( sub @ ( sub @ A @ M ) @ N )
          = ( sub @ A @ ( comp @ M @ N ) ) ) ) ) ).

thf('8',plain,
    ( termmset
    = ( ! [X4: term] :
          ( ( sub @ X4 @ id )
          = X4 )
      & ! [X6: term,X8: subst,X10: subst] :
          ( ( sub @ ( sub @ X6 @ X8 ) @ X10 )
          = ( sub @ X6 @ ( comp @ X8 @ X10 ) ) ) ) ),
    define([status(thm)]) ).

thf(substmonoid,axiom,
    ( substmonoid
    = ( ! [M: subst] :
          ( ( comp @ M @ id )
          = M )
      & ! [M: subst] :
          ( ( comp @ id @ M )
          = M )
      & ! [M: subst,N: subst,K: subst] :
          ( ( comp @ ( comp @ M @ N ) @ K )
          = ( comp @ M @ ( comp @ N @ K ) ) ) ) ) ).

thf('9',plain,
    ( substmonoid
    = ( ! [X4: subst] :
          ( ( comp @ X4 @ id )
          = X4 )
      & ! [X6: subst] :
          ( ( comp @ id @ X6 )
          = X6 )
      & ! [X8: subst,X10: subst,X12: subst] :
          ( ( comp @ ( comp @ X8 @ X10 ) @ X12 )
          = ( comp @ X8 @ ( comp @ X10 @ X12 ) ) ) ) ),
    define([status(thm)]) ).

thf(induction2,axiom,
    ( induction2
    = ( ! [P: term > $o] :
          ( ! [A: term] :
              ( ( var @ A )
             => ( P @ A ) )
         => ( ! [A: term,B: term] :
                ( ( P @ A )
               => ( ( P @ B )
                 => ( P @ ( ap @ A @ B ) ) ) )
           => ( ! [A: term] :
                  ( ! [B: term] :
                      ( ( P @ B )
                     => ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
                 => ( P @ ( lam @ A ) ) )
             => ! [A: term] : ( P @ A ) ) ) ) ) ) ).

thf('10',plain,
    ( induction2
    = ( ! [X4: term > $o] :
          ( ! [X6: term] :
              ( ( var @ X6 )
             => ( X4 @ X6 ) )
         => ( ! [X8: term,X10: term] :
                ( ( X4 @ X8 )
               => ( ( X4 @ X10 )
                 => ( X4 @ ( ap @ X8 @ X10 ) ) ) )
           => ( ! [X12: term] :
                  ( ! [X14: term] :
                      ( ( X4 @ X14 )
                     => ( X4 @ ( sub @ X12 @ ( push @ X14 @ id ) ) ) )
                 => ( X4 @ ( lam @ X12 ) ) )
             => ! [X16: term] : ( X4 @ X16 ) ) ) ) ) ),
    define([status(thm)]) ).

thf(induction2lem,axiom,
    ( induction2lem
    = ( ! [P: term > $o] :
          ( ! [A: term,B: term] :
              ( ( P @ A )
             => ( ( P @ B )
               => ( P @ ( ap @ A @ B ) ) ) )
         => ( ! [A: term] :
                ( ! [B: term] :
                    ( ( P @ B )
                   => ( P @ ( sub @ A @ ( push @ B @ id ) ) ) )
               => ( P @ ( lam @ A ) ) )
           => ! [A: term,M: subst] :
                ( ! [B: term] :
                    ( ( var @ B )
                   => ( P @ ( sub @ B @ M ) ) )
               => ( P @ ( sub @ A @ M ) ) ) ) ) ) ) ).

thf('11',plain,
    ( induction2lem
    = ( ! [X4: term > $o] :
          ( ! [X6: term,X8: term] :
              ( ( X4 @ X6 )
             => ( ( X4 @ X8 )
               => ( X4 @ ( ap @ X6 @ X8 ) ) ) )
         => ( ! [X10: term] :
                ( ! [X12: term] :
                    ( ( X4 @ X12 )
                   => ( X4 @ ( sub @ X10 @ ( push @ X12 @ id ) ) ) )
               => ( X4 @ ( lam @ X10 ) ) )
           => ! [X14: term,X16: subst] :
                ( ! [X18: term] :
                    ( ( var @ X18 )
                   => ( X4 @ ( sub @ X18 @ X16 ) ) )
               => ( X4 @ ( sub @ X14 @ X16 ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(pushprop,axiom,
    ( pushprop
    = ( ! [P: term > $o,A: term,M: subst] :
          ( ! [B: term] :
              ( ( var @ B )
             => ( P @ ( sub @ B @ M ) ) )
         => ( ( P @ A )
           => ! [B: term] :
                ( ( var @ B )
               => ( P @ ( sub @ B @ ( push @ A @ M ) ) ) ) ) ) ) ) ).

thf('12',plain,
    ( pushprop
    = ( ! [X4: term > $o,X6: term,X8: subst] :
          ( ! [X10: term] :
              ( ( var @ X10 )
             => ( X4 @ ( sub @ X10 @ X8 ) ) )
         => ( ( X4 @ X6 )
           => ! [X12: term] :
                ( ( var @ X12 )
               => ( X4 @ ( sub @ X12 @ ( push @ X6 @ X8 ) ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(induction,axiom,
    ( induction
    = ( ! [P: term > $o] :
          ( ! [A: term] :
              ( ( var @ A )
             => ( P @ A ) )
         => ( ! [A: term,B: term] :
                ( ( P @ A )
               => ( ( P @ B )
                 => ( P @ ( ap @ A @ B ) ) ) )
           => ( ! [A: term] :
                  ( ( P @ A )
                 => ( P @ ( lam @ A ) ) )
             => ! [A: term] : ( P @ A ) ) ) ) ) ) ).

thf('13',plain,
    ( induction
    = ( ! [X4: term > $o] :
          ( ! [X6: term] :
              ( ( var @ X6 )
             => ( X4 @ X6 ) )
         => ( ! [X8: term,X10: term] :
                ( ( X4 @ X8 )
               => ( ( X4 @ X10 )
                 => ( X4 @ ( ap @ X8 @ X10 ) ) ) )
           => ( ! [X12: term] :
                  ( ( X4 @ X12 )
                 => ( X4 @ ( lam @ X12 ) ) )
             => ! [X14: term] : ( X4 @ X14 ) ) ) ) ) ),
    define([status(thm)]) ).

thf(lamnotvar,axiom,
    ( lamnotvar
    = ( ! [A: term] :
          ~ ( var @ ( lam @ A ) ) ) ) ).

thf('14',plain,
    ( lamnotvar
    = ( ! [X4: term] :
          ~ ( var @ ( lam @ X4 ) ) ) ),
    define([status(thm)]) ).

thf(apnotvar,axiom,
    ( apnotvar
    = ( ! [A: term,B: term] :
          ~ ( var @ ( ap @ A @ B ) ) ) ) ).

thf('15',plain,
    ( apnotvar
    = ( ! [X4: term,X6: term] :
          ~ ( var @ ( ap @ X4 @ X6 ) ) ) ),
    define([status(thm)]) ).

thf(lamnotap,axiom,
    ( lamnotap
    = ( ! [A: term,B: term,C: term] :
          ( ( lam @ A )
         != ( ap @ B @ C ) ) ) ) ).

thf('16',plain,
    ( lamnotap
    = ( ! [X4: term,X6: term,X8: term] :
          ( ( lam @ X4 )
         != ( ap @ X6 @ X8 ) ) ) ),
    define([status(thm)]) ).

thf(shinj,axiom,
    ( shinj
    = ( ! [A: term,B: term] :
          ( ( ( sub @ A @ sh )
            = ( sub @ B @ sh ) )
         => ( A = B ) ) ) ) ).

thf('17',plain,
    ( shinj
    = ( ! [X4: term,X6: term] :
          ( ( ( sub @ X4 @ sh )
            = ( sub @ X6 @ sh ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(laminj,axiom,
    ( laminj
    = ( ! [A: term,B: term] :
          ( ( ( lam @ A )
            = ( lam @ B ) )
         => ( A = B ) ) ) ) ).

thf('18',plain,
    ( laminj
    = ( ! [X4: term,X6: term] :
          ( ( ( lam @ X4 )
            = ( lam @ X6 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(apinj2,axiom,
    ( apinj2
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( ap @ A @ C )
            = ( ap @ B @ D ) )
         => ( C = D ) ) ) ) ).

thf('19',plain,
    ( apinj2
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( ap @ X4 @ X8 )
            = ( ap @ X6 @ X10 ) )
         => ( X8 = X10 ) ) ) ),
    define([status(thm)]) ).

thf(apinj1,axiom,
    ( apinj1
    = ( ! [A: term,B: term,C: term,D: term] :
          ( ( ( ap @ A @ C )
            = ( ap @ B @ D ) )
         => ( A = B ) ) ) ) ).

thf('20',plain,
    ( apinj1
    = ( ! [X4: term,X6: term,X8: term,X10: term] :
          ( ( ( ap @ X4 @ X8 )
            = ( ap @ X6 @ X10 ) )
         => ( X4 = X6 ) ) ) ),
    define([status(thm)]) ).

thf(ulamvarind,axiom,
    ( ulamvarind
    = ( ! [P: term > $o] :
          ( ( P @ one )
         => ( ! [A: term] :
                ( ( var @ A )
               => ( ( P @ A )
                 => ( P @ ( sub @ A @ sh ) ) ) )
           => ! [A: term] :
                ( ( var @ A )
               => ( P @ A ) ) ) ) ) ) ).

thf('21',plain,
    ( ulamvarind
    = ( ! [X4: term > $o] :
          ( ( X4 @ one )
         => ( ! [X6: term] :
                ( ( var @ X6 )
               => ( ( X4 @ X6 )
                 => ( X4 @ ( sub @ X6 @ sh ) ) ) )
           => ! [X8: term] :
                ( ( var @ X8 )
               => ( X4 @ X8 ) ) ) ) ) ),
    define([status(thm)]) ).

thf(ulamvarsh,axiom,
    ( ulamvarsh
    = ( ! [A: term] :
          ( ( var @ A )
         => ( var @ ( sub @ A @ sh ) ) ) ) ) ).

thf('22',plain,
    ( ulamvarsh
    = ( ! [X4: term] :
          ( ( var @ X4 )
         => ( var @ ( sub @ X4 @ sh ) ) ) ) ),
    define([status(thm)]) ).

thf(ulamvar1,axiom,
    ( ulamvar1
    = ( var @ one ) ) ).

thf('23',plain,
    ( ulamvar1
    = ( var @ one ) ),
    inference(simplify_rw_rule,[status(thm)],[ulamvar1]) ).

thf('24',plain,
    ( ulamvar1
    = ( var @ one ) ),
    define([status(thm)]) ).

thf(axscons,axiom,
    ( axscons
    = ( ! [M: subst] :
          ( ( push @ ( sub @ one @ M ) @ ( comp @ sh @ M ) )
          = M ) ) ) ).

thf('25',plain,
    ( axscons
    = ( ! [X4: subst] :
          ( ( push @ ( sub @ one @ X4 ) @ ( comp @ sh @ X4 ) )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axvarshift,axiom,
    ( axvarshift
    = ( ( push @ one @ sh )
      = id ) ) ).

thf('26',plain,
    ( axvarshift
    = ( ( push @ one @ sh )
      = id ) ),
    define([status(thm)]) ).

thf(axidr,axiom,
    ( axidr
    = ( ! [M: subst] :
          ( ( comp @ M @ id )
          = M ) ) ) ).

thf('27',plain,
    ( axidr
    = ( ! [X4: subst] :
          ( ( comp @ X4 @ id )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axmap,axiom,
    ( axmap
    = ( ! [A: term,M: subst,N: subst] :
          ( ( comp @ ( push @ A @ M ) @ N )
          = ( push @ ( sub @ A @ N ) @ ( comp @ M @ N ) ) ) ) ) ).

thf('28',plain,
    ( axmap
    = ( ! [X4: term,X6: subst,X8: subst] :
          ( ( comp @ ( push @ X4 @ X6 ) @ X8 )
          = ( push @ ( sub @ X4 @ X8 ) @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axassoc,axiom,
    ( axassoc
    = ( ! [M: subst,N: subst,K: subst] :
          ( ( comp @ ( comp @ M @ N ) @ K )
          = ( comp @ M @ ( comp @ N @ K ) ) ) ) ) ).

thf('29',plain,
    ( axassoc
    = ( ! [X4: subst,X6: subst,X8: subst] :
          ( ( comp @ ( comp @ X4 @ X6 ) @ X8 )
          = ( comp @ X4 @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axshiftcons,axiom,
    ( axshiftcons
    = ( ! [A: term,M: subst] :
          ( ( comp @ sh @ ( push @ A @ M ) )
          = M ) ) ) ).

thf('30',plain,
    ( axshiftcons
    = ( ! [X4: term,X6: subst] :
          ( ( comp @ sh @ ( push @ X4 @ X6 ) )
          = X6 ) ) ),
    define([status(thm)]) ).

thf(axidl,axiom,
    ( axidl
    = ( ! [M: subst] :
          ( ( comp @ id @ M )
          = M ) ) ) ).

thf('31',plain,
    ( axidl
    = ( ! [X4: subst] :
          ( ( comp @ id @ X4 )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axclos,axiom,
    ( axclos
    = ( ! [A: term,M: subst,N: subst] :
          ( ( sub @ ( sub @ A @ M ) @ N )
          = ( sub @ A @ ( comp @ M @ N ) ) ) ) ) ).

thf('32',plain,
    ( axclos
    = ( ! [X4: term,X6: subst,X8: subst] :
          ( ( sub @ ( sub @ X4 @ X6 ) @ X8 )
          = ( sub @ X4 @ ( comp @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(axabs,axiom,
    ( axabs
    = ( ! [A: term,M: subst] :
          ( ( sub @ ( lam @ A ) @ M )
          = ( lam @ ( sub @ A @ ( push @ one @ ( comp @ M @ sh ) ) ) ) ) ) ) ).

thf('33',plain,
    ( axabs
    = ( ! [X4: term,X6: subst] :
          ( ( sub @ ( lam @ X4 ) @ X6 )
          = ( lam @ ( sub @ X4 @ ( push @ one @ ( comp @ X6 @ sh ) ) ) ) ) ) ),
    define([status(thm)]) ).

thf(axvarid,axiom,
    ( axvarid
    = ( ! [A: term] :
          ( ( sub @ A @ id )
          = A ) ) ) ).

thf('34',plain,
    ( axvarid
    = ( ! [X4: term] :
          ( ( sub @ X4 @ id )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axvarcons,axiom,
    ( axvarcons
    = ( ! [A: term,M: subst] :
          ( ( sub @ one @ ( push @ A @ M ) )
          = A ) ) ) ).

thf('35',plain,
    ( axvarcons
    = ( ! [X4: term,X6: subst] :
          ( ( sub @ one @ ( push @ X4 @ X6 ) )
          = X4 ) ) ),
    define([status(thm)]) ).

thf(axapp,axiom,
    ( axapp
    = ( ! [A: term,B: term,M: subst] :
          ( ( sub @ ( ap @ A @ B ) @ M )
          = ( ap @ ( sub @ A @ M ) @ ( sub @ B @ M ) ) ) ) ) ).

thf('36',plain,
    ( axapp
    = ( ! [X4: term,X6: term,X8: subst] :
          ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
          = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) ) ) ),
    define([status(thm)]) ).

thf(thm,conjecture,
    hoaslaminj_gthm ).

thf(zf_stmt_0,conjecture,
    ( ! [X4: term,X6: term,X8: subst] :
        ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
        = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
   => ( ! [X10: term,X12: subst] :
          ( ( sub @ one @ ( push @ X10 @ X12 ) )
          = X10 )
     => ( ! [X14: term] :
            ( ( sub @ X14 @ id )
            = X14 )
       => ( ! [X16: term,X18: subst] :
              ( ( sub @ ( lam @ X16 ) @ X18 )
              = ( lam @ ( sub @ X16 @ ( push @ one @ ( comp @ X18 @ sh ) ) ) ) )
         => ( ! [X20: term,X22: subst,X24: subst] :
                ( ( sub @ ( sub @ X20 @ X22 ) @ X24 )
                = ( sub @ X20 @ ( comp @ X22 @ X24 ) ) )
           => ( ! [X26: subst] :
                  ( ( comp @ id @ X26 )
                  = X26 )
             => ( ! [X28: term,X30: subst] :
                    ( ( comp @ sh @ ( push @ X28 @ X30 ) )
                    = X30 )
               => ( ! [X32: subst,X34: subst,X36: subst] :
                      ( ( comp @ ( comp @ X32 @ X34 ) @ X36 )
                      = ( comp @ X32 @ ( comp @ X34 @ X36 ) ) )
                 => ( ! [X38: term,X40: subst,X42: subst] :
                        ( ( comp @ ( push @ X38 @ X40 ) @ X42 )
                        = ( push @ ( sub @ X38 @ X42 ) @ ( comp @ X40 @ X42 ) ) )
                   => ( ! [X44: subst] :
                          ( ( comp @ X44 @ id )
                          = X44 )
                     => ( ( ( push @ one @ sh )
                          = id )
                       => ( ! [X46: subst] :
                              ( ( push @ ( sub @ one @ X46 ) @ ( comp @ sh @ X46 ) )
                              = X46 )
                         => ( ( var @ one )
                           => ( ! [X48: term] :
                                  ( ( var @ X48 )
                                 => ( var @ ( sub @ X48 @ sh ) ) )
                             => ( ! [X50: term > $o] :
                                    ( ( X50 @ one )
                                   => ( ! [X52: term] :
                                          ( ( var @ X52 )
                                         => ( ( X50 @ X52 )
                                           => ( X50 @ ( sub @ X52 @ sh ) ) ) )
                                     => ! [X54: term] :
                                          ( ( var @ X54 )
                                         => ( X50 @ X54 ) ) ) )
                               => ( ! [X56: term,X58: term,X60: term,X62: term] :
                                      ( ( ( ap @ X56 @ X60 )
                                        = ( ap @ X58 @ X62 ) )
                                     => ( X56 = X58 ) )
                                 => ( ! [X64: term,X66: term,X68: term,X70: term] :
                                        ( ( ( ap @ X64 @ X68 )
                                          = ( ap @ X66 @ X70 ) )
                                       => ( X68 = X70 ) )
                                   => ( ! [X72: term,X74: term] :
                                          ( ( ( lam @ X72 )
                                            = ( lam @ X74 ) )
                                         => ( X72 = X74 ) )
                                     => ( ! [X76: term,X78: term] :
                                            ( ( ( sub @ X76 @ sh )
                                              = ( sub @ X78 @ sh ) )
                                           => ( X76 = X78 ) )
                                       => ( ! [X80: term,X82: term,X84: term] :
                                              ( ( lam @ X80 )
                                             != ( ap @ X82 @ X84 ) )
                                         => ( ! [X86: term,X88: term] :
                                                ~ ( var @ ( ap @ X86 @ X88 ) )
                                           => ( ! [X90: term] :
                                                  ~ ( var @ ( lam @ X90 ) )
                                             => ( ! [X92: term > $o] :
                                                    ( ! [X94: term] :
                                                        ( ( var @ X94 )
                                                       => ( X92 @ X94 ) )
                                                   => ( ! [X96: term,X98: term] :
                                                          ( ( X92 @ X96 )
                                                         => ( ( X92 @ X98 )
                                                           => ( X92 @ ( ap @ X96 @ X98 ) ) ) )
                                                     => ( ! [X100: term] :
                                                            ( ( X92 @ X100 )
                                                           => ( X92 @ ( lam @ X100 ) ) )
                                                       => ! [X102: term] : ( X92 @ X102 ) ) ) )
                                               => ( ! [X104: term > $o,X106: term,X108: subst] :
                                                      ( ! [X110: term] :
                                                          ( ( var @ X110 )
                                                         => ( X104 @ ( sub @ X110 @ X108 ) ) )
                                                     => ( ( X104 @ X106 )
                                                       => ! [X112: term] :
                                                            ( ( var @ X112 )
                                                           => ( X104 @ ( sub @ X112 @ ( push @ X106 @ X108 ) ) ) ) ) )
                                                 => ( ! [X114: term > $o] :
                                                        ( ! [X116: term,X118: term] :
                                                            ( ( X114 @ X116 )
                                                           => ( ( X114 @ X118 )
                                                             => ( X114 @ ( ap @ X116 @ X118 ) ) ) )
                                                       => ( ! [X120: term] :
                                                              ( ! [X122: term] :
                                                                  ( ( X114 @ X122 )
                                                                 => ( X114 @ ( sub @ X120 @ ( push @ X122 @ id ) ) ) )
                                                             => ( X114 @ ( lam @ X120 ) ) )
                                                         => ! [X124: term,X126: subst] :
                                                              ( ! [X128: term] :
                                                                  ( ( var @ X128 )
                                                                 => ( X114 @ ( sub @ X128 @ X126 ) ) )
                                                             => ( X114 @ ( sub @ X124 @ X126 ) ) ) ) )
                                                   => ( ! [X130: term > $o] :
                                                          ( ! [X132: term] :
                                                              ( ( var @ X132 )
                                                             => ( X130 @ X132 ) )
                                                         => ( ! [X134: term,X136: term] :
                                                                ( ( X130 @ X134 )
                                                               => ( ( X130 @ X136 )
                                                                 => ( X130 @ ( ap @ X134 @ X136 ) ) ) )
                                                           => ( ! [X138: term] :
                                                                  ( ! [X140: term] :
                                                                      ( ( X130 @ X140 )
                                                                     => ( X130 @ ( sub @ X138 @ ( push @ X140 @ id ) ) ) )
                                                                 => ( X130 @ ( lam @ X138 ) ) )
                                                             => ! [X142: term] : ( X130 @ X142 ) ) ) )
                                                     => ( ( ! [X148: subst,X150: subst,X152: subst] :
                                                              ( ( comp @ ( comp @ X148 @ X150 ) @ X152 )
                                                              = ( comp @ X148 @ ( comp @ X150 @ X152 ) ) )
                                                          & ! [X146: subst] :
                                                              ( ( comp @ id @ X146 )
                                                              = X146 )
                                                          & ! [X144: subst] :
                                                              ( ( comp @ X144 @ id )
                                                              = X144 ) )
                                                       => ( ( ! [X156: term,X158: subst,X160: subst] :
                                                                ( ( sub @ ( sub @ X156 @ X158 ) @ X160 )
                                                                = ( sub @ X156 @ ( comp @ X158 @ X160 ) ) )
                                                            & ! [X154: term] :
                                                                ( ( sub @ X154 @ id )
                                                                = X154 ) )
                                                         => ( ! [X162: term,X164: term,X166: term,X168: term] :
                                                                ( ( ( ap @ ( sub @ X162 @ id ) @ X166 )
                                                                  = ( ap @ ( sub @ X164 @ id ) @ X168 ) )
                                                               => ( X162 = X164 ) )
                                                           => ( ! [X170: term,X172: term,X174: term,X176: term] :
                                                                  ( ( ( ap @ ( sub @ X170 @ id ) @ X174 )
                                                                    = ( ap @ ( sub @ X172 @ id ) @ X176 ) )
                                                                 => ( X174 = X176 ) )
                                                             => ! [X178: subst > term > term] :
                                                                  ( ! [X180: subst,X182: term,X184: subst] :
                                                                      ( ( sub @ ( X178 @ X180 @ X182 ) @ X184 )
                                                                      = ( X178 @ ( comp @ X180 @ X184 ) @ ( sub @ X182 @ X184 ) ) )
                                                                 => ! [X186: subst > term > term] :
                                                                      ( ! [X188: subst,X190: term,X192: subst] :
                                                                          ( ( sub @ ( X186 @ X188 @ X190 ) @ X192 )
                                                                          = ( X186 @ ( comp @ X188 @ X192 ) @ ( sub @ X190 @ X192 ) ) )
                                                                     => ( ( ( lam @ ( X178 @ sh @ one ) )
                                                                          = ( lam @ ( X186 @ sh @ one ) ) )
                                                                       => ! [X194: subst,X196: term] :
                                                                            ( ( X178 @ X194 @ X196 )
                                                                            = ( X186 @ X194 @ X196 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ).

thf(zf_stmt_1,negated_conjecture,
    ~ ( ! [X4: term,X6: term,X8: subst] :
          ( ( sub @ ( ap @ X4 @ X6 ) @ X8 )
          = ( ap @ ( sub @ X4 @ X8 ) @ ( sub @ X6 @ X8 ) ) )
     => ( ! [X10: term,X12: subst] :
            ( ( sub @ one @ ( push @ X10 @ X12 ) )
            = X10 )
       => ( ! [X14: term] :
              ( ( sub @ X14 @ id )
              = X14 )
         => ( ! [X16: term,X18: subst] :
                ( ( sub @ ( lam @ X16 ) @ X18 )
                = ( lam @ ( sub @ X16 @ ( push @ one @ ( comp @ X18 @ sh ) ) ) ) )
           => ( ! [X20: term,X22: subst,X24: subst] :
                  ( ( sub @ ( sub @ X20 @ X22 ) @ X24 )
                  = ( sub @ X20 @ ( comp @ X22 @ X24 ) ) )
             => ( ! [X26: subst] :
                    ( ( comp @ id @ X26 )
                    = X26 )
               => ( ! [X28: term,X30: subst] :
                      ( ( comp @ sh @ ( push @ X28 @ X30 ) )
                      = X30 )
                 => ( ! [X32: subst,X34: subst,X36: subst] :
                        ( ( comp @ ( comp @ X32 @ X34 ) @ X36 )
                        = ( comp @ X32 @ ( comp @ X34 @ X36 ) ) )
                   => ( ! [X38: term,X40: subst,X42: subst] :
                          ( ( comp @ ( push @ X38 @ X40 ) @ X42 )
                          = ( push @ ( sub @ X38 @ X42 ) @ ( comp @ X40 @ X42 ) ) )
                     => ( ! [X44: subst] :
                            ( ( comp @ X44 @ id )
                            = X44 )
                       => ( ( ( push @ one @ sh )
                            = id )
                         => ( ! [X46: subst] :
                                ( ( push @ ( sub @ one @ X46 ) @ ( comp @ sh @ X46 ) )
                                = X46 )
                           => ( ( var @ one )
                             => ( ! [X48: term] :
                                    ( ( var @ X48 )
                                   => ( var @ ( sub @ X48 @ sh ) ) )
                               => ( ! [X50: term > $o] :
                                      ( ( X50 @ one )
                                     => ( ! [X52: term] :
                                            ( ( var @ X52 )
                                           => ( ( X50 @ X52 )
                                             => ( X50 @ ( sub @ X52 @ sh ) ) ) )
                                       => ! [X54: term] :
                                            ( ( var @ X54 )
                                           => ( X50 @ X54 ) ) ) )
                                 => ( ! [X56: term,X58: term,X60: term,X62: term] :
                                        ( ( ( ap @ X56 @ X60 )
                                          = ( ap @ X58 @ X62 ) )
                                       => ( X56 = X58 ) )
                                   => ( ! [X64: term,X66: term,X68: term,X70: term] :
                                          ( ( ( ap @ X64 @ X68 )
                                            = ( ap @ X66 @ X70 ) )
                                         => ( X68 = X70 ) )
                                     => ( ! [X72: term,X74: term] :
                                            ( ( ( lam @ X72 )
                                              = ( lam @ X74 ) )
                                           => ( X72 = X74 ) )
                                       => ( ! [X76: term,X78: term] :
                                              ( ( ( sub @ X76 @ sh )
                                                = ( sub @ X78 @ sh ) )
                                             => ( X76 = X78 ) )
                                         => ( ! [X80: term,X82: term,X84: term] :
                                                ( ( lam @ X80 )
                                               != ( ap @ X82 @ X84 ) )
                                           => ( ! [X86: term,X88: term] :
                                                  ~ ( var @ ( ap @ X86 @ X88 ) )
                                             => ( ! [X90: term] :
                                                    ~ ( var @ ( lam @ X90 ) )
                                               => ( ! [X92: term > $o] :
                                                      ( ! [X94: term] :
                                                          ( ( var @ X94 )
                                                         => ( X92 @ X94 ) )
                                                     => ( ! [X96: term,X98: term] :
                                                            ( ( X92 @ X96 )
                                                           => ( ( X92 @ X98 )
                                                             => ( X92 @ ( ap @ X96 @ X98 ) ) ) )
                                                       => ( ! [X100: term] :
                                                              ( ( X92 @ X100 )
                                                             => ( X92 @ ( lam @ X100 ) ) )
                                                         => ! [X102: term] : ( X92 @ X102 ) ) ) )
                                                 => ( ! [X104: term > $o,X106: term,X108: subst] :
                                                        ( ! [X110: term] :
                                                            ( ( var @ X110 )
                                                           => ( X104 @ ( sub @ X110 @ X108 ) ) )
                                                       => ( ( X104 @ X106 )
                                                         => ! [X112: term] :
                                                              ( ( var @ X112 )
                                                             => ( X104 @ ( sub @ X112 @ ( push @ X106 @ X108 ) ) ) ) ) )
                                                   => ( ! [X114: term > $o] :
                                                          ( ! [X116: term,X118: term] :
                                                              ( ( X114 @ X116 )
                                                             => ( ( X114 @ X118 )
                                                               => ( X114 @ ( ap @ X116 @ X118 ) ) ) )
                                                         => ( ! [X120: term] :
                                                                ( ! [X122: term] :
                                                                    ( ( X114 @ X122 )
                                                                   => ( X114 @ ( sub @ X120 @ ( push @ X122 @ id ) ) ) )
                                                               => ( X114 @ ( lam @ X120 ) ) )
                                                           => ! [X124: term,X126: subst] :
                                                                ( ! [X128: term] :
                                                                    ( ( var @ X128 )
                                                                   => ( X114 @ ( sub @ X128 @ X126 ) ) )
                                                               => ( X114 @ ( sub @ X124 @ X126 ) ) ) ) )
                                                     => ( ! [X130: term > $o] :
                                                            ( ! [X132: term] :
                                                                ( ( var @ X132 )
                                                               => ( X130 @ X132 ) )
                                                           => ( ! [X134: term,X136: term] :
                                                                  ( ( X130 @ X134 )
                                                                 => ( ( X130 @ X136 )
                                                                   => ( X130 @ ( ap @ X134 @ X136 ) ) ) )
                                                             => ( ! [X138: term] :
                                                                    ( ! [X140: term] :
                                                                        ( ( X130 @ X140 )
                                                                       => ( X130 @ ( sub @ X138 @ ( push @ X140 @ id ) ) ) )
                                                                   => ( X130 @ ( lam @ X138 ) ) )
                                                               => ! [X142: term] : ( X130 @ X142 ) ) ) )
                                                       => ( ( ! [X148: subst,X150: subst,X152: subst] :
                                                                ( ( comp @ ( comp @ X148 @ X150 ) @ X152 )
                                                                = ( comp @ X148 @ ( comp @ X150 @ X152 ) ) )
                                                            & ! [X146: subst] :
                                                                ( ( comp @ id @ X146 )
                                                                = X146 )
                                                            & ! [X144: subst] :
                                                                ( ( comp @ X144 @ id )
                                                                = X144 ) )
                                                         => ( ( ! [X156: term,X158: subst,X160: subst] :
                                                                  ( ( sub @ ( sub @ X156 @ X158 ) @ X160 )
                                                                  = ( sub @ X156 @ ( comp @ X158 @ X160 ) ) )
                                                              & ! [X154: term] :
                                                                  ( ( sub @ X154 @ id )
                                                                  = X154 ) )
                                                           => ( ! [X162: term,X164: term,X166: term,X168: term] :
                                                                  ( ( ( ap @ ( sub @ X162 @ id ) @ X166 )
                                                                    = ( ap @ ( sub @ X164 @ id ) @ X168 ) )
                                                                 => ( X162 = X164 ) )
                                                             => ( ! [X170: term,X172: term,X174: term,X176: term] :
                                                                    ( ( ( ap @ ( sub @ X170 @ id ) @ X174 )
                                                                      = ( ap @ ( sub @ X172 @ id ) @ X176 ) )
                                                                   => ( X174 = X176 ) )
                                                               => ! [X178: subst > term > term] :
                                                                    ( ! [X180: subst,X182: term,X184: subst] :
                                                                        ( ( sub @ ( X178 @ X180 @ X182 ) @ X184 )
                                                                        = ( X178 @ ( comp @ X180 @ X184 ) @ ( sub @ X182 @ X184 ) ) )
                                                                   => ! [X186: subst > term > term] :
                                                                        ( ! [X188: subst,X190: term,X192: subst] :
                                                                            ( ( sub @ ( X186 @ X188 @ X190 ) @ X192 )
                                                                            = ( X186 @ ( comp @ X188 @ X192 ) @ ( sub @ X190 @ X192 ) ) )
                                                                       => ( ( ( lam @ ( X178 @ sh @ one ) )
                                                                            = ( lam @ ( X186 @ sh @ one ) ) )
                                                                         => ! [X194: subst,X196: term] :
                                                                              ( ( X178 @ X194 @ X196 )
                                                                              = ( X186 @ X194 @ X196 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference('cnf.neg',[status(esa)],[zf_stmt_0]) ).

thf(zip_derived_cl0,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( ap @ Y0 @ Y1 ) @ Y2 )
                    = ( ap @ ( sub @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( sub @ one @ ( push @ Y0 @ Y1 ) )
                  = Y0 ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( sub @ Y0 @ id )
                = Y0 ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( ( sub @ ( lam @ Y0 ) @ Y1 )
                      = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ id @ Y0 )
                      = Y0 ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                            = Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                    = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ Y0 @ id )
                              = Y0 ) )
                       => ( ( ( push @ one @ sh )
                            = id )
                         => ( ( !!
                              @ ^ [Y0: subst] :
                                  ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                                  = Y0 ) )
                           => ( ( var @ one )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( ( var @ Y0 )
                                     => ( var @ ( sub @ Y0 @ sh ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( Y0 @ one )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( ( Y0 @ Y1 )
                                                 => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ Y0 @ Y2 )
                                                        = ( ap @ Y1 @ Y3 ) )
                                                     => ( Y0 = Y1 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( ( ap @ Y0 @ Y2 )
                                                          = ( ap @ Y1 @ Y3 ) )
                                                       => ( Y2 = Y3 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( ( lam @ Y0 )
                                                    = ( lam @ Y1 ) )
                                                 => ( Y0 = Y1 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( ( sub @ Y0 @ sh )
                                                      = ( sub @ Y1 @ sh ) )
                                                   => ( Y0 = Y1 ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( lam @ Y0 )
                                                         != ( ap @ Y1 @ Y2 ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ Y1 )
                                                             => ( Y0 @ Y1 ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term > $o] :
                                                          ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( var @ Y3 )
                                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                 => ( ( Y0 @ Y1 )
                                                                   => ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( var @ Y3 )
                                                                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y1 )
                                                                     => ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( var @ Y3 )
                                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: term > $o] :
                                                              ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( var @ Y1 )
                                                                   => ( Y0 @ Y1 ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y1 )
                                                                         => ( ( Y0 @ Y2 )
                                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                               => ( ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( ( Y0 @ Y2 )
                                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                       => ( ( ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                            & ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( ( comp @ id @ Y0 )
                                                                  = Y0 ) )
                                                            & ( !!
                                                              @ ^ [Y0: subst] :
                                                                  ( ( comp @ Y0 @ id )
                                                                  = Y0 ) ) )
                                                         => ( ( ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                              & ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( ( sub @ Y0 @ id )
                                                                    = Y0 ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                               => ( Y0 = Y1 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y0: term] :
                                                                      ( !!
                                                                      @ ^ [Y1: term] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: term] :
                                                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                                 => ( Y2 = Y3 ) ) ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y0: subst > term > term] :
                                                                      ( ( !!
                                                                        @ ^ [Y1: subst] :
                                                                            ( !!
                                                                            @ ^ [Y2: term] :
                                                                                ( !!
                                                                                @ ^ [Y3: subst] :
                                                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y1: subst > term > term] :
                                                                            ( ( !!
                                                                              @ ^ [Y2: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: term] :
                                                                                      ( !!
                                                                                      @ ^ [Y4: subst] :
                                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                           => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                                = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                             => ( !!
                                                                                @ ^ [Y2: subst] :
                                                                                    ( !!
                                                                                    @ ^ [Y3: term] :
                                                                                        ( ( Y0 @ Y2 @ Y3 )
                                                                                        = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(cnf,[status(esa)],[zf_stmt_1]) ).

thf(zip_derived_cl2,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( sub @ one @ ( push @ Y0 @ Y1 ) )
                = Y0 ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( sub @ Y0 @ id )
              = Y0 ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( ( sub @ ( lam @ Y0 ) @ Y1 )
                    = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ id @ Y0 )
                    = Y0 ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                          = Y1 ) ) )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                  = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ Y0 @ id )
                            = Y0 ) )
                     => ( ( ( push @ one @ sh )
                          = id )
                       => ( ( !!
                            @ ^ [Y0: subst] :
                                ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                                = Y0 ) )
                         => ( ( var @ one )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( ( var @ Y0 )
                                   => ( var @ ( sub @ Y0 @ sh ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( Y0 @ one )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( ( Y0 @ Y1 )
                                               => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ Y0 @ Y2 )
                                                      = ( ap @ Y1 @ Y3 ) )
                                                   => ( Y0 = Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ Y0 @ Y2 )
                                                        = ( ap @ Y1 @ Y3 ) )
                                                     => ( Y2 = Y3 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( ( ( lam @ Y0 )
                                                  = ( lam @ Y1 ) )
                                               => ( Y0 = Y1 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( ( sub @ Y0 @ sh )
                                                    = ( sub @ Y1 @ sh ) )
                                                 => ( Y0 = Y1 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( lam @ Y0 )
                                                       != ( ap @ Y1 @ Y2 ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ Y1 )
                                                           => ( Y0 @ Y1 ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                               => ( ( Y0 @ Y1 )
                                                                 => ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( var @ Y3 )
                                                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( var @ Y3 )
                                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term > $o] :
                                                            ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( var @ Y1 )
                                                                 => ( Y0 @ Y1 ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y1 )
                                                                       => ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                             => ( ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( ( Y0 @ Y2 )
                                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                     => ( ( ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                          & ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( ( comp @ id @ Y0 )
                                                                = Y0 ) )
                                                          & ( !!
                                                            @ ^ [Y0: subst] :
                                                                ( ( comp @ Y0 @ id )
                                                                = Y0 ) ) )
                                                       => ( ( ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                            & ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( ( sub @ Y0 @ id )
                                                                  = Y0 ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                             => ( Y0 = Y1 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y0: term] :
                                                                    ( !!
                                                                    @ ^ [Y1: term] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                               => ( Y2 = Y3 ) ) ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y0: subst > term > term] :
                                                                    ( ( !!
                                                                      @ ^ [Y1: subst] :
                                                                          ( !!
                                                                          @ ^ [Y2: term] :
                                                                              ( !!
                                                                              @ ^ [Y3: subst] :
                                                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y1: subst > term > term] :
                                                                          ( ( !!
                                                                            @ ^ [Y2: subst] :
                                                                                ( !!
                                                                                @ ^ [Y3: term] :
                                                                                    ( !!
                                                                                    @ ^ [Y4: subst] :
                                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                         => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                              = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                           => ( !!
                                                                              @ ^ [Y2: subst] :
                                                                                  ( !!
                                                                                  @ ^ [Y3: term] :
                                                                                      ( ( Y0 @ Y2 @ Y3 )
                                                                                      = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl0]) ).

thf(zip_derived_cl5,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( ( sub @ Y0 @ id )
            = Y0 ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( sub @ ( lam @ Y0 ) @ Y1 )
                  = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ id @ Y0 )
                  = Y0 ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                        = Y1 ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                                = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ Y0 @ id )
                          = Y0 ) )
                   => ( ( ( push @ one @ sh )
                        = id )
                     => ( ( !!
                          @ ^ [Y0: subst] :
                              ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                              = Y0 ) )
                       => ( ( var @ one )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( ( var @ Y0 )
                                 => ( var @ ( sub @ Y0 @ sh ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( Y0 @ one )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( ( Y0 @ Y1 )
                                             => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ Y0 @ Y2 )
                                                    = ( ap @ Y1 @ Y3 ) )
                                                 => ( Y0 = Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ Y0 @ Y2 )
                                                      = ( ap @ Y1 @ Y3 ) )
                                                   => ( Y2 = Y3 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( ( ( lam @ Y0 )
                                                = ( lam @ Y1 ) )
                                             => ( Y0 = Y1 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( ( ( sub @ Y0 @ sh )
                                                  = ( sub @ Y1 @ sh ) )
                                               => ( Y0 = Y1 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( lam @ Y0 )
                                                     != ( ap @ Y1 @ Y2 ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ Y1 )
                                                         => ( Y0 @ Y1 ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                             => ( ( Y0 @ Y1 )
                                                               => ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( var @ Y3 )
                                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term > $o] :
                                                          ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( var @ Y1 )
                                                               => ( Y0 @ Y1 ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y1 )
                                                                     => ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                           => ( ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( ( Y0 @ Y2 )
                                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                   => ( ( ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                        & ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( ( comp @ id @ Y0 )
                                                              = Y0 ) )
                                                        & ( !!
                                                          @ ^ [Y0: subst] :
                                                              ( ( comp @ Y0 @ id )
                                                              = Y0 ) ) )
                                                     => ( ( ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                          & ( !!
                                                            @ ^ [Y0: term] :
                                                                ( ( sub @ Y0 @ id )
                                                                = Y0 ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                           => ( Y0 = Y1 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y0: term] :
                                                                  ( !!
                                                                  @ ^ [Y1: term] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                             => ( Y2 = Y3 ) ) ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y0: subst > term > term] :
                                                                  ( ( !!
                                                                    @ ^ [Y1: subst] :
                                                                        ( !!
                                                                        @ ^ [Y2: term] :
                                                                            ( !!
                                                                            @ ^ [Y3: subst] :
                                                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y1: subst > term > term] :
                                                                        ( ( !!
                                                                          @ ^ [Y2: subst] :
                                                                              ( !!
                                                                              @ ^ [Y3: term] :
                                                                                  ( !!
                                                                                  @ ^ [Y4: subst] :
                                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                       => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                            = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                         => ( !!
                                                                            @ ^ [Y2: subst] :
                                                                                ( !!
                                                                                @ ^ [Y3: term] :
                                                                                    ( ( Y0 @ Y2 @ Y3 )
                                                                                    = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl2]) ).

thf(zip_derived_cl9,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( sub @ ( lam @ Y0 ) @ Y1 )
                = ( lam @ ( sub @ Y0 @ ( push @ one @ ( comp @ Y1 @ sh ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ id @ Y0 )
                = Y0 ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                      = Y1 ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                              = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ Y0 @ id )
                        = Y0 ) )
                 => ( ( ( push @ one @ sh )
                      = id )
                   => ( ( !!
                        @ ^ [Y0: subst] :
                            ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                            = Y0 ) )
                     => ( ( var @ one )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( ( var @ Y0 )
                               => ( var @ ( sub @ Y0 @ sh ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( Y0 @ one )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( ( Y0 @ Y1 )
                                           => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ Y0 @ Y2 )
                                                  = ( ap @ Y1 @ Y3 ) )
                                               => ( Y0 = Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ Y0 @ Y2 )
                                                    = ( ap @ Y1 @ Y3 ) )
                                                 => ( Y2 = Y3 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( ( ( lam @ Y0 )
                                              = ( lam @ Y1 ) )
                                           => ( Y0 = Y1 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( ( ( sub @ Y0 @ sh )
                                                = ( sub @ Y1 @ sh ) )
                                             => ( Y0 = Y1 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( lam @ Y0 )
                                                   != ( ap @ Y1 @ Y2 ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ Y1 )
                                                       => ( Y0 @ Y1 ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                           => ( ( Y0 @ Y1 )
                                                             => ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( var @ Y3 )
                                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term > $o] :
                                                        ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( var @ Y1 )
                                                             => ( Y0 @ Y1 ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y1 )
                                                                   => ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                         => ( ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( ( Y0 @ Y2 )
                                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                                 => ( ( ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                      & ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( ( comp @ id @ Y0 )
                                                            = Y0 ) )
                                                      & ( !!
                                                        @ ^ [Y0: subst] :
                                                            ( ( comp @ Y0 @ id )
                                                            = Y0 ) ) )
                                                   => ( ( ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                        & ( !!
                                                          @ ^ [Y0: term] :
                                                              ( ( sub @ Y0 @ id )
                                                              = Y0 ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                         => ( Y0 = Y1 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y0: term] :
                                                                ( !!
                                                                @ ^ [Y1: term] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                           => ( Y2 = Y3 ) ) ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y0: subst > term > term] :
                                                                ( ( !!
                                                                  @ ^ [Y1: subst] :
                                                                      ( !!
                                                                      @ ^ [Y2: term] :
                                                                          ( !!
                                                                          @ ^ [Y3: subst] :
                                                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                               => ( !!
                                                                  @ ^ [Y1: subst > term > term] :
                                                                      ( ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( !!
                                                                                @ ^ [Y4: subst] :
                                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                     => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                          = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                       => ( !!
                                                                          @ ^ [Y2: subst] :
                                                                              ( !!
                                                                              @ ^ [Y3: term] :
                                                                                  ( ( Y0 @ Y2 @ Y3 )
                                                                                  = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl5]) ).

thf(zip_derived_cl14,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ id @ Y0 )
              = Y0 ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                    = Y1 ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                            = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ Y0 @ id )
                      = Y0 ) )
               => ( ( ( push @ one @ sh )
                    = id )
                 => ( ( !!
                      @ ^ [Y0: subst] :
                          ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                          = Y0 ) )
                   => ( ( var @ one )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( ( var @ Y0 )
                             => ( var @ ( sub @ Y0 @ sh ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( Y0 @ one )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( ( Y0 @ Y1 )
                                         => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ Y0 @ Y2 )
                                                = ( ap @ Y1 @ Y3 ) )
                                             => ( Y0 = Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ Y0 @ Y2 )
                                                  = ( ap @ Y1 @ Y3 ) )
                                               => ( Y2 = Y3 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( ( ( lam @ Y0 )
                                            = ( lam @ Y1 ) )
                                         => ( Y0 = Y1 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( ( ( sub @ Y0 @ sh )
                                              = ( sub @ Y1 @ sh ) )
                                           => ( Y0 = Y1 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( lam @ Y0 )
                                                 != ( ap @ Y1 @ Y2 ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ Y1 )
                                                     => ( Y0 @ Y1 ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                         => ( ( Y0 @ Y1 )
                                                           => ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( var @ Y3 )
                                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term > $o] :
                                                      ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( var @ Y1 )
                                                           => ( Y0 @ Y1 ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y1 )
                                                                 => ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                       => ( ( !!
                                                            @ ^ [Y1: term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( ( Y0 @ Y2 )
                                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                               => ( ( ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                    & ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( ( comp @ id @ Y0 )
                                                          = Y0 ) )
                                                    & ( !!
                                                      @ ^ [Y0: subst] :
                                                          ( ( comp @ Y0 @ id )
                                                          = Y0 ) ) )
                                                 => ( ( ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                      & ( !!
                                                        @ ^ [Y0: term] :
                                                            ( ( sub @ Y0 @ id )
                                                            = Y0 ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                       => ( Y0 = Y1 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y0: term] :
                                                              ( !!
                                                              @ ^ [Y1: term] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                         => ( Y2 = Y3 ) ) ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y0: subst > term > term] :
                                                              ( ( !!
                                                                @ ^ [Y1: subst] :
                                                                    ( !!
                                                                    @ ^ [Y2: term] :
                                                                        ( !!
                                                                        @ ^ [Y3: subst] :
                                                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                             => ( !!
                                                                @ ^ [Y1: subst > term > term] :
                                                                    ( ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( !!
                                                                              @ ^ [Y4: subst] :
                                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                   => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                        = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                     => ( !!
                                                                        @ ^ [Y2: subst] :
                                                                            ( !!
                                                                            @ ^ [Y3: term] :
                                                                                ( ( Y0 @ Y2 @ Y3 )
                                                                                = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl9]) ).

thf(zip_derived_cl20,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( comp @ id @ Y0 )
            = Y0 ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                  = Y1 ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                          = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ Y0 @ id )
                    = Y0 ) )
             => ( ( ( push @ one @ sh )
                  = id )
               => ( ( !!
                    @ ^ [Y0: subst] :
                        ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                        = Y0 ) )
                 => ( ( var @ one )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( ( var @ Y0 )
                           => ( var @ ( sub @ Y0 @ sh ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( Y0 @ one )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( ( Y0 @ Y1 )
                                       => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ Y0 @ Y2 )
                                              = ( ap @ Y1 @ Y3 ) )
                                           => ( Y0 = Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ Y0 @ Y2 )
                                                = ( ap @ Y1 @ Y3 ) )
                                             => ( Y2 = Y3 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( ( ( lam @ Y0 )
                                          = ( lam @ Y1 ) )
                                       => ( Y0 = Y1 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( ( ( sub @ Y0 @ sh )
                                            = ( sub @ Y1 @ sh ) )
                                         => ( Y0 = Y1 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( lam @ Y0 )
                                               != ( ap @ Y1 @ Y2 ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ Y1 )
                                                   => ( Y0 @ Y1 ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                       => ( ( Y0 @ Y1 )
                                                         => ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( var @ Y3 )
                                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term > $o] :
                                                    ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( var @ Y1 )
                                                         => ( Y0 @ Y1 ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y1 )
                                                               => ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                     => ( ( !!
                                                          @ ^ [Y1: term] :
                                                              ( ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( ( Y0 @ Y2 )
                                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                             => ( ( ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                  & ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( ( comp @ id @ Y0 )
                                                        = Y0 ) )
                                                  & ( !!
                                                    @ ^ [Y0: subst] :
                                                        ( ( comp @ Y0 @ id )
                                                        = Y0 ) ) )
                                               => ( ( ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                    & ( !!
                                                      @ ^ [Y0: term] :
                                                          ( ( sub @ Y0 @ id )
                                                          = Y0 ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                     => ( Y0 = Y1 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y0: term] :
                                                            ( !!
                                                            @ ^ [Y1: term] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                       => ( Y2 = Y3 ) ) ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y0: subst > term > term] :
                                                            ( ( !!
                                                              @ ^ [Y1: subst] :
                                                                  ( !!
                                                                  @ ^ [Y2: term] :
                                                                      ( !!
                                                                      @ ^ [Y3: subst] :
                                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                           => ( !!
                                                              @ ^ [Y1: subst > term > term] :
                                                                  ( ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( !!
                                                                            @ ^ [Y4: subst] :
                                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                                 => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                      = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                   => ( !!
                                                                      @ ^ [Y2: subst] :
                                                                          ( !!
                                                                          @ ^ [Y3: term] :
                                                                              ( ( Y0 @ Y2 @ Y3 )
                                                                              = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl14]) ).

thf(zip_derived_cl24,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
                = Y1 ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                        = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ Y0 @ id )
                  = Y0 ) )
           => ( ( ( push @ one @ sh )
                = id )
             => ( ( !!
                  @ ^ [Y0: subst] :
                      ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                      = Y0 ) )
               => ( ( var @ one )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( ( var @ Y0 )
                         => ( var @ ( sub @ Y0 @ sh ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( Y0 @ one )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( ( Y0 @ Y1 )
                                     => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ Y0 @ Y2 )
                                            = ( ap @ Y1 @ Y3 ) )
                                         => ( Y0 = Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ Y0 @ Y2 )
                                              = ( ap @ Y1 @ Y3 ) )
                                           => ( Y2 = Y3 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( ( ( lam @ Y0 )
                                        = ( lam @ Y1 ) )
                                     => ( Y0 = Y1 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( ( ( sub @ Y0 @ sh )
                                          = ( sub @ Y1 @ sh ) )
                                       => ( Y0 = Y1 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( lam @ Y0 )
                                             != ( ap @ Y1 @ Y2 ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ Y1 )
                                                 => ( Y0 @ Y1 ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                     => ( ( Y0 @ Y1 )
                                                       => ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( var @ Y3 )
                                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term > $o] :
                                                  ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( var @ Y1 )
                                                       => ( Y0 @ Y1 ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y1 )
                                                             => ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                   => ( ( !!
                                                        @ ^ [Y1: term] :
                                                            ( ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( ( Y0 @ Y2 )
                                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                           => ( ( ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                & ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( ( comp @ id @ Y0 )
                                                      = Y0 ) )
                                                & ( !!
                                                  @ ^ [Y0: subst] :
                                                      ( ( comp @ Y0 @ id )
                                                      = Y0 ) ) )
                                             => ( ( ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                  & ( !!
                                                    @ ^ [Y0: term] :
                                                        ( ( sub @ Y0 @ id )
                                                        = Y0 ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                   => ( Y0 = Y1 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y0: term] :
                                                          ( !!
                                                          @ ^ [Y1: term] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                     => ( Y2 = Y3 ) ) ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y0: subst > term > term] :
                                                          ( ( !!
                                                            @ ^ [Y1: subst] :
                                                                ( !!
                                                                @ ^ [Y2: term] :
                                                                    ( !!
                                                                    @ ^ [Y3: subst] :
                                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                         => ( !!
                                                            @ ^ [Y1: subst > term > term] :
                                                                ( ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( !!
                                                                          @ ^ [Y4: subst] :
                                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                               => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                    = ( lam @ ( Y1 @ sh @ one ) ) )
                                                                 => ( !!
                                                                    @ ^ [Y2: subst] :
                                                                        ( !!
                                                                        @ ^ [Y3: term] :
                                                                            ( ( Y0 @ Y2 @ Y3 )
                                                                            = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl20]) ).

thf(zip_derived_cl29,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                      = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ Y0 @ id )
                = Y0 ) )
         => ( ( ( push @ one @ sh )
              = id )
           => ( ( !!
                @ ^ [Y0: subst] :
                    ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                    = Y0 ) )
             => ( ( var @ one )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( ( var @ Y0 )
                       => ( var @ ( sub @ Y0 @ sh ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( Y0 @ one )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( ( Y0 @ Y1 )
                                   => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ Y0 @ Y2 )
                                          = ( ap @ Y1 @ Y3 ) )
                                       => ( Y0 = Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ Y0 @ Y2 )
                                            = ( ap @ Y1 @ Y3 ) )
                                         => ( Y2 = Y3 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( ( ( lam @ Y0 )
                                      = ( lam @ Y1 ) )
                                   => ( Y0 = Y1 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( ( ( sub @ Y0 @ sh )
                                        = ( sub @ Y1 @ sh ) )
                                     => ( Y0 = Y1 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( lam @ Y0 )
                                           != ( ap @ Y1 @ Y2 ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                   => ( ( Y0 @ Y1 )
                                                     => ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( var @ Y3 )
                                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term > $o] :
                                                ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( var @ Y1 )
                                                     => ( Y0 @ Y1 ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y1 )
                                                           => ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                                 => ( ( !!
                                                      @ ^ [Y1: term] :
                                                          ( ( !!
                                                            @ ^ [Y2: term] :
                                                                ( ( Y0 @ Y2 )
                                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                         => ( ( ( !!
                                                @ ^ [Y0: subst] :
                                                    ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                              & ( !!
                                                @ ^ [Y0: subst] :
                                                    ( ( comp @ id @ Y0 )
                                                    = Y0 ) )
                                              & ( !!
                                                @ ^ [Y0: subst] :
                                                    ( ( comp @ Y0 @ id )
                                                    = Y0 ) ) )
                                           => ( ( ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                                & ( !!
                                                  @ ^ [Y0: term] :
                                                      ( ( sub @ Y0 @ id )
                                                      = Y0 ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                 => ( Y0 = Y1 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y0: term] :
                                                        ( !!
                                                        @ ^ [Y1: term] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                   => ( Y2 = Y3 ) ) ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y0: subst > term > term] :
                                                        ( ( !!
                                                          @ ^ [Y1: subst] :
                                                              ( !!
                                                              @ ^ [Y2: term] :
                                                                  ( !!
                                                                  @ ^ [Y3: subst] :
                                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                       => ( !!
                                                          @ ^ [Y1: subst > term > term] :
                                                              ( ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( !!
                                                                        @ ^ [Y4: subst] :
                                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                             => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                  = ( lam @ ( Y1 @ sh @ one ) ) )
                                                               => ( !!
                                                                  @ ^ [Y2: subst] :
                                                                      ( !!
                                                                      @ ^ [Y3: term] :
                                                                          ( ( Y0 @ Y2 @ Y3 )
                                                                          = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl24]) ).

thf(zip_derived_cl34,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( comp @ ( push @ Y0 @ Y1 ) @ Y2 )
                    = ( push @ ( sub @ Y0 @ Y2 ) @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ Y0 @ id )
              = Y0 ) )
       => ( ( ( push @ one @ sh )
            = id )
         => ( ( !!
              @ ^ [Y0: subst] :
                  ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                  = Y0 ) )
           => ( ( var @ one )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( ( var @ Y0 )
                     => ( var @ ( sub @ Y0 @ sh ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( Y0 @ one )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( ( Y0 @ Y1 )
                                 => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ Y0 @ Y2 )
                                        = ( ap @ Y1 @ Y3 ) )
                                     => ( Y0 = Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ Y0 @ Y2 )
                                          = ( ap @ Y1 @ Y3 ) )
                                       => ( Y2 = Y3 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( ( ( lam @ Y0 )
                                    = ( lam @ Y1 ) )
                                 => ( Y0 = Y1 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( ( ( sub @ Y0 @ sh )
                                      = ( sub @ Y1 @ sh ) )
                                   => ( Y0 = Y1 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( lam @ Y0 )
                                         != ( ap @ Y1 @ Y2 ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                 => ( ( Y0 @ Y1 )
                                                   => ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( var @ Y3 )
                                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term > $o] :
                                              ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( var @ Y1 )
                                                   => ( Y0 @ Y1 ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y1 )
                                                         => ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                               => ( ( !!
                                                    @ ^ [Y1: term] :
                                                        ( ( !!
                                                          @ ^ [Y2: term] :
                                                              ( ( Y0 @ Y2 )
                                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                       => ( ( ( !!
                                              @ ^ [Y0: subst] :
                                                  ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                            & ( !!
                                              @ ^ [Y0: subst] :
                                                  ( ( comp @ id @ Y0 )
                                                  = Y0 ) )
                                            & ( !!
                                              @ ^ [Y0: subst] :
                                                  ( ( comp @ Y0 @ id )
                                                  = Y0 ) ) )
                                         => ( ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                              & ( !!
                                                @ ^ [Y0: term] :
                                                    ( ( sub @ Y0 @ id )
                                                    = Y0 ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                               => ( Y0 = Y1 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y0: term] :
                                                      ( !!
                                                      @ ^ [Y1: term] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                                 => ( Y2 = Y3 ) ) ) ) ) )
                                               => ( !!
                                                  @ ^ [Y0: subst > term > term] :
                                                      ( ( !!
                                                        @ ^ [Y1: subst] :
                                                            ( !!
                                                            @ ^ [Y2: term] :
                                                                ( !!
                                                                @ ^ [Y3: subst] :
                                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                     => ( !!
                                                        @ ^ [Y1: subst > term > term] :
                                                            ( ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( !!
                                                                      @ ^ [Y4: subst] :
                                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                           => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                                = ( lam @ ( Y1 @ sh @ one ) ) )
                                                             => ( !!
                                                                @ ^ [Y2: subst] :
                                                                    ( !!
                                                                    @ ^ [Y3: term] :
                                                                        ( ( Y0 @ Y2 @ Y3 )
                                                                        = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl29]) ).

thf(zip_derived_cl39,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( comp @ Y0 @ id )
            = Y0 ) )
     => ( ( ( push @ one @ sh )
          = id )
       => ( ( !!
            @ ^ [Y0: subst] :
                ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
                = Y0 ) )
         => ( ( var @ one )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( ( var @ Y0 )
                   => ( var @ ( sub @ Y0 @ sh ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( Y0 @ one )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( ( Y0 @ Y1 )
                               => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ Y0 @ Y2 )
                                      = ( ap @ Y1 @ Y3 ) )
                                   => ( Y0 = Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ Y0 @ Y2 )
                                        = ( ap @ Y1 @ Y3 ) )
                                     => ( Y2 = Y3 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( ( ( lam @ Y0 )
                                  = ( lam @ Y1 ) )
                               => ( Y0 = Y1 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( ( ( sub @ Y0 @ sh )
                                    = ( sub @ Y1 @ sh ) )
                                 => ( Y0 = Y1 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( lam @ Y0 )
                                       != ( ap @ Y1 @ Y2 ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                               => ( ( Y0 @ Y1 )
                                                 => ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( var @ Y3 )
                                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term > $o] :
                                            ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( var @ Y1 )
                                                 => ( Y0 @ Y1 ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y1 )
                                                       => ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                             => ( ( !!
                                                  @ ^ [Y1: term] :
                                                      ( ( !!
                                                        @ ^ [Y2: term] :
                                                            ( ( Y0 @ Y2 )
                                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                     => ( ( ( !!
                                            @ ^ [Y0: subst] :
                                                ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                          & ( !!
                                            @ ^ [Y0: subst] :
                                                ( ( comp @ id @ Y0 )
                                                = Y0 ) )
                                          & ( !!
                                            @ ^ [Y0: subst] :
                                                ( ( comp @ Y0 @ id )
                                                = Y0 ) ) )
                                       => ( ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                            & ( !!
                                              @ ^ [Y0: term] :
                                                  ( ( sub @ Y0 @ id )
                                                  = Y0 ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                             => ( Y0 = Y1 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y0: term] :
                                                    ( !!
                                                    @ ^ [Y1: term] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                               => ( Y2 = Y3 ) ) ) ) ) )
                                             => ( !!
                                                @ ^ [Y0: subst > term > term] :
                                                    ( ( !!
                                                      @ ^ [Y1: subst] :
                                                          ( !!
                                                          @ ^ [Y2: term] :
                                                              ( !!
                                                              @ ^ [Y3: subst] :
                                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                   => ( !!
                                                      @ ^ [Y1: subst > term > term] :
                                                          ( ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( !!
                                                                    @ ^ [Y4: subst] :
                                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                         => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                              = ( lam @ ( Y1 @ sh @ one ) ) )
                                                           => ( !!
                                                              @ ^ [Y2: subst] :
                                                                  ( !!
                                                                  @ ^ [Y3: term] :
                                                                      ( ( Y0 @ Y2 @ Y3 )
                                                                      = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl34]) ).

thf(zip_derived_cl44,plain,
    ~ ( ( ( push @ one @ sh )
        = id )
     => ( ( !!
          @ ^ [Y0: subst] :
              ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
              = Y0 ) )
       => ( ( var @ one )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( ( var @ Y0 )
                 => ( var @ ( sub @ Y0 @ sh ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( Y0 @ one )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( ( Y0 @ Y1 )
                             => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ Y0 @ Y2 )
                                    = ( ap @ Y1 @ Y3 ) )
                                 => ( Y0 = Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ Y0 @ Y2 )
                                      = ( ap @ Y1 @ Y3 ) )
                                   => ( Y2 = Y3 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( ( ( lam @ Y0 )
                                = ( lam @ Y1 ) )
                             => ( Y0 = Y1 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( ( ( sub @ Y0 @ sh )
                                  = ( sub @ Y1 @ sh ) )
                               => ( Y0 = Y1 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( lam @ Y0 )
                                     != ( ap @ Y1 @ Y2 ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                             => ( ( Y0 @ Y1 )
                                               => ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( var @ Y3 )
                                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term > $o] :
                                          ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( var @ Y1 )
                                               => ( Y0 @ Y1 ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y1 )
                                                     => ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                           => ( ( !!
                                                @ ^ [Y1: term] :
                                                    ( ( !!
                                                      @ ^ [Y2: term] :
                                                          ( ( Y0 @ Y2 )
                                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                   => ( ( ( !!
                                          @ ^ [Y0: subst] :
                                              ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                        & ( !!
                                          @ ^ [Y0: subst] :
                                              ( ( comp @ id @ Y0 )
                                              = Y0 ) )
                                        & ( !!
                                          @ ^ [Y0: subst] :
                                              ( ( comp @ Y0 @ id )
                                              = Y0 ) ) )
                                     => ( ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                          & ( !!
                                            @ ^ [Y0: term] :
                                                ( ( sub @ Y0 @ id )
                                                = Y0 ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                           => ( Y0 = Y1 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y0: term] :
                                                  ( !!
                                                  @ ^ [Y1: term] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                             => ( Y2 = Y3 ) ) ) ) ) )
                                           => ( !!
                                              @ ^ [Y0: subst > term > term] :
                                                  ( ( !!
                                                    @ ^ [Y1: subst] :
                                                        ( !!
                                                        @ ^ [Y2: term] :
                                                            ( !!
                                                            @ ^ [Y3: subst] :
                                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                                 => ( !!
                                                    @ ^ [Y1: subst > term > term] :
                                                        ( ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( !!
                                                                  @ ^ [Y4: subst] :
                                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                       => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                            = ( lam @ ( Y1 @ sh @ one ) ) )
                                                         => ( !!
                                                            @ ^ [Y2: subst] :
                                                                ( !!
                                                                @ ^ [Y3: term] :
                                                                    ( ( Y0 @ Y2 @ Y3 )
                                                                    = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl39]) ).

thf(zip_derived_cl49,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( ( push @ ( sub @ one @ Y0 ) @ ( comp @ sh @ Y0 ) )
            = Y0 ) )
     => ( ( var @ one )
       => ( ( !!
            @ ^ [Y0: term] :
                ( ( var @ Y0 )
               => ( var @ ( sub @ Y0 @ sh ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( Y0 @ one )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( ( Y0 @ Y1 )
                           => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ Y0 @ Y2 )
                                  = ( ap @ Y1 @ Y3 ) )
                               => ( Y0 = Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ Y0 @ Y2 )
                                    = ( ap @ Y1 @ Y3 ) )
                                 => ( Y2 = Y3 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( ( ( lam @ Y0 )
                              = ( lam @ Y1 ) )
                           => ( Y0 = Y1 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( ( ( sub @ Y0 @ sh )
                                = ( sub @ Y1 @ sh ) )
                             => ( Y0 = Y1 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( lam @ Y0 )
                                   != ( ap @ Y1 @ Y2 ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                           => ( ( Y0 @ Y1 )
                                             => ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( var @ Y3 )
                                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term > $o] :
                                        ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( var @ Y1 )
                                             => ( Y0 @ Y1 ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y1 )
                                                   => ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                         => ( ( !!
                                              @ ^ [Y1: term] :
                                                  ( ( !!
                                                    @ ^ [Y2: term] :
                                                        ( ( Y0 @ Y2 )
                                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                                 => ( ( ( !!
                                        @ ^ [Y0: subst] :
                                            ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                      & ( !!
                                        @ ^ [Y0: subst] :
                                            ( ( comp @ id @ Y0 )
                                            = Y0 ) )
                                      & ( !!
                                        @ ^ [Y0: subst] :
                                            ( ( comp @ Y0 @ id )
                                            = Y0 ) ) )
                                   => ( ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                        & ( !!
                                          @ ^ [Y0: term] :
                                              ( ( sub @ Y0 @ id )
                                              = Y0 ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                         => ( Y0 = Y1 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y0: term] :
                                                ( !!
                                                @ ^ [Y1: term] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                           => ( Y2 = Y3 ) ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y0: subst > term > term] :
                                                ( ( !!
                                                  @ ^ [Y1: subst] :
                                                      ( !!
                                                      @ ^ [Y2: term] :
                                                          ( !!
                                                          @ ^ [Y3: subst] :
                                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                               => ( !!
                                                  @ ^ [Y1: subst > term > term] :
                                                      ( ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( !!
                                                                @ ^ [Y4: subst] :
                                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                     => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                          = ( lam @ ( Y1 @ sh @ one ) ) )
                                                       => ( !!
                                                          @ ^ [Y2: subst] :
                                                              ( !!
                                                              @ ^ [Y3: term] :
                                                                  ( ( Y0 @ Y2 @ Y3 )
                                                                  = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl44]) ).

thf(zip_derived_cl55,plain,
    ~ ( ( var @ one )
     => ( ( !!
          @ ^ [Y0: term] :
              ( ( var @ Y0 )
             => ( var @ ( sub @ Y0 @ sh ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( Y0 @ one )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( ( Y0 @ Y1 )
                         => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ Y0 @ Y2 )
                                = ( ap @ Y1 @ Y3 ) )
                             => ( Y0 = Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ Y0 @ Y2 )
                                  = ( ap @ Y1 @ Y3 ) )
                               => ( Y2 = Y3 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( ( ( lam @ Y0 )
                            = ( lam @ Y1 ) )
                         => ( Y0 = Y1 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( ( ( sub @ Y0 @ sh )
                              = ( sub @ Y1 @ sh ) )
                           => ( Y0 = Y1 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( lam @ Y0 )
                                 != ( ap @ Y1 @ Y2 ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                         => ( ( Y0 @ Y1 )
                                           => ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( var @ Y3 )
                                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term > $o] :
                                      ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( var @ Y1 )
                                           => ( Y0 @ Y1 ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y1 )
                                                 => ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                       => ( ( !!
                                            @ ^ [Y1: term] :
                                                ( ( !!
                                                  @ ^ [Y2: term] :
                                                      ( ( Y0 @ Y2 )
                                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                               => ( ( ( !!
                                      @ ^ [Y0: subst] :
                                          ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                    & ( !!
                                      @ ^ [Y0: subst] :
                                          ( ( comp @ id @ Y0 )
                                          = Y0 ) )
                                    & ( !!
                                      @ ^ [Y0: subst] :
                                          ( ( comp @ Y0 @ id )
                                          = Y0 ) ) )
                                 => ( ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: subst] :
                                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                      & ( !!
                                        @ ^ [Y0: term] :
                                            ( ( sub @ Y0 @ id )
                                            = Y0 ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                       => ( Y0 = Y1 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y0: term] :
                                              ( !!
                                              @ ^ [Y1: term] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                         => ( Y2 = Y3 ) ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y0: subst > term > term] :
                                              ( ( !!
                                                @ ^ [Y1: subst] :
                                                    ( !!
                                                    @ ^ [Y2: term] :
                                                        ( !!
                                                        @ ^ [Y3: subst] :
                                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                             => ( !!
                                                @ ^ [Y1: subst > term > term] :
                                                    ( ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( !!
                                                              @ ^ [Y4: subst] :
                                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                   => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                        = ( lam @ ( Y1 @ sh @ one ) ) )
                                                     => ( !!
                                                        @ ^ [Y2: subst] :
                                                            ( !!
                                                            @ ^ [Y3: term] :
                                                                ( ( Y0 @ Y2 @ Y3 )
                                                                = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl49]) ).

thf(zip_derived_cl59,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( ( var @ Y0 )
           => ( var @ ( sub @ Y0 @ sh ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( Y0 @ one )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( ( Y0 @ Y1 )
                       => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
               => ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ Y0 @ Y2 )
                              = ( ap @ Y1 @ Y3 ) )
                           => ( Y0 = Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ Y0 @ Y2 )
                                = ( ap @ Y1 @ Y3 ) )
                             => ( Y2 = Y3 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( ( ( lam @ Y0 )
                          = ( lam @ Y1 ) )
                       => ( Y0 = Y1 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( ( ( sub @ Y0 @ sh )
                            = ( sub @ Y1 @ sh ) )
                         => ( Y0 = Y1 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( lam @ Y0 )
                               != ( ap @ Y1 @ Y2 ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                       => ( ( Y0 @ Y1 )
                                         => ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( var @ Y3 )
                                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term > $o] :
                                    ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( var @ Y1 )
                                         => ( Y0 @ Y1 ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y1 )
                                               => ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                     => ( ( !!
                                          @ ^ [Y1: term] :
                                              ( ( !!
                                                @ ^ [Y2: term] :
                                                    ( ( Y0 @ Y2 )
                                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                             => ( ( ( !!
                                    @ ^ [Y0: subst] :
                                        ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                  & ( !!
                                    @ ^ [Y0: subst] :
                                        ( ( comp @ id @ Y0 )
                                        = Y0 ) )
                                  & ( !!
                                    @ ^ [Y0: subst] :
                                        ( ( comp @ Y0 @ id )
                                        = Y0 ) ) )
                               => ( ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: subst] :
                                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                    & ( !!
                                      @ ^ [Y0: term] :
                                          ( ( sub @ Y0 @ id )
                                          = Y0 ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                     => ( Y0 = Y1 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y0: term] :
                                            ( !!
                                            @ ^ [Y1: term] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                       => ( Y2 = Y3 ) ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y0: subst > term > term] :
                                            ( ( !!
                                              @ ^ [Y1: subst] :
                                                  ( !!
                                                  @ ^ [Y2: term] :
                                                      ( !!
                                                      @ ^ [Y3: subst] :
                                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                           => ( !!
                                              @ ^ [Y1: subst > term > term] :
                                                  ( ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( !!
                                                            @ ^ [Y4: subst] :
                                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                                 => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                      = ( lam @ ( Y1 @ sh @ one ) ) )
                                                   => ( !!
                                                      @ ^ [Y2: subst] :
                                                          ( !!
                                                          @ ^ [Y3: term] :
                                                              ( ( Y0 @ Y2 @ Y3 )
                                                              = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl55]) ).

thf(zip_derived_cl62,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( Y0 @ one )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( ( Y0 @ Y1 )
                     => ( Y0 @ ( sub @ Y1 @ sh ) ) ) ) )
             => ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( Y0 @ Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ Y0 @ Y2 )
                            = ( ap @ Y1 @ Y3 ) )
                         => ( Y0 = Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ Y0 @ Y2 )
                              = ( ap @ Y1 @ Y3 ) )
                           => ( Y2 = Y3 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( ( ( lam @ Y0 )
                        = ( lam @ Y1 ) )
                     => ( Y0 = Y1 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( ( ( sub @ Y0 @ sh )
                          = ( sub @ Y1 @ sh ) )
                       => ( Y0 = Y1 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( lam @ Y0 )
                             != ( ap @ Y1 @ Y2 ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                     => ( ( Y0 @ Y1 )
                                       => ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( var @ Y3 )
                                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term > $o] :
                                  ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( var @ Y1 )
                                       => ( Y0 @ Y1 ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y1 )
                                             => ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                   => ( ( !!
                                        @ ^ [Y1: term] :
                                            ( ( !!
                                              @ ^ [Y2: term] :
                                                  ( ( Y0 @ Y2 )
                                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                           => ( ( ( !!
                                  @ ^ [Y0: subst] :
                                      ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                & ( !!
                                  @ ^ [Y0: subst] :
                                      ( ( comp @ id @ Y0 )
                                      = Y0 ) )
                                & ( !!
                                  @ ^ [Y0: subst] :
                                      ( ( comp @ Y0 @ id )
                                      = Y0 ) ) )
                             => ( ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: subst] :
                                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                  & ( !!
                                    @ ^ [Y0: term] :
                                        ( ( sub @ Y0 @ id )
                                        = Y0 ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                   => ( Y0 = Y1 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y0: term] :
                                          ( !!
                                          @ ^ [Y1: term] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                     => ( Y2 = Y3 ) ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y0: subst > term > term] :
                                          ( ( !!
                                            @ ^ [Y1: subst] :
                                                ( !!
                                                @ ^ [Y2: term] :
                                                    ( !!
                                                    @ ^ [Y3: subst] :
                                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                         => ( !!
                                            @ ^ [Y1: subst > term > term] :
                                                ( ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( !!
                                                          @ ^ [Y4: subst] :
                                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                               => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                    = ( lam @ ( Y1 @ sh @ one ) ) )
                                                 => ( !!
                                                    @ ^ [Y2: subst] :
                                                        ( !!
                                                        @ ^ [Y3: term] :
                                                            ( ( Y0 @ Y2 @ Y3 )
                                                            = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl59]) ).

thf(zip_derived_cl65,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ Y0 @ Y2 )
                          = ( ap @ Y1 @ Y3 ) )
                       => ( Y0 = Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ Y0 @ Y2 )
                            = ( ap @ Y1 @ Y3 ) )
                         => ( Y2 = Y3 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( ( lam @ Y0 )
                      = ( lam @ Y1 ) )
                   => ( Y0 = Y1 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( ( ( sub @ Y0 @ sh )
                        = ( sub @ Y1 @ sh ) )
                     => ( Y0 = Y1 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( lam @ Y0 )
                           != ( ap @ Y1 @ Y2 ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                   => ( ( Y0 @ Y1 )
                                     => ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( !!
                                            @ ^ [Y3: term] :
                                                ( ( var @ Y3 )
                                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term > $o] :
                                ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( var @ Y1 )
                                     => ( Y0 @ Y1 ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y1 )
                                           => ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                                 => ( ( !!
                                      @ ^ [Y1: term] :
                                          ( ( !!
                                            @ ^ [Y2: term] :
                                                ( ( Y0 @ Y2 )
                                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                         => ( ( ( !!
                                @ ^ [Y0: subst] :
                                    ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                              & ( !!
                                @ ^ [Y0: subst] :
                                    ( ( comp @ id @ Y0 )
                                    = Y0 ) )
                              & ( !!
                                @ ^ [Y0: subst] :
                                    ( ( comp @ Y0 @ id )
                                    = Y0 ) ) )
                           => ( ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: subst] :
                                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                                & ( !!
                                  @ ^ [Y0: term] :
                                      ( ( sub @ Y0 @ id )
                                      = Y0 ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                 => ( Y0 = Y1 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y0: term] :
                                        ( !!
                                        @ ^ [Y1: term] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                   => ( Y2 = Y3 ) ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y0: subst > term > term] :
                                        ( ( !!
                                          @ ^ [Y1: subst] :
                                              ( !!
                                              @ ^ [Y2: term] :
                                                  ( !!
                                                  @ ^ [Y3: subst] :
                                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                       => ( !!
                                          @ ^ [Y1: subst > term > term] :
                                              ( ( !!
                                                @ ^ [Y2: subst] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( !!
                                                        @ ^ [Y4: subst] :
                                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                             => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                  = ( lam @ ( Y1 @ sh @ one ) ) )
                                               => ( !!
                                                  @ ^ [Y2: subst] :
                                                      ( !!
                                                      @ ^ [Y3: term] :
                                                          ( ( Y0 @ Y2 @ Y3 )
                                                          = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl62]) ).

thf(zip_derived_cl69,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ Y0 @ Y2 )
                          = ( ap @ Y1 @ Y3 ) )
                       => ( Y2 = Y3 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( ( lam @ Y0 )
                    = ( lam @ Y1 ) )
                 => ( Y0 = Y1 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( ( ( sub @ Y0 @ sh )
                      = ( sub @ Y1 @ sh ) )
                   => ( Y0 = Y1 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( lam @ Y0 )
                         != ( ap @ Y1 @ Y2 ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                 => ( ( Y0 @ Y1 )
                                   => ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( !!
                                          @ ^ [Y3: term] :
                                              ( ( var @ Y3 )
                                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term > $o] :
                              ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( var @ Y1 )
                                   => ( Y0 @ Y1 ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y1 )
                                         => ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                               => ( ( !!
                                    @ ^ [Y1: term] :
                                        ( ( !!
                                          @ ^ [Y2: term] :
                                              ( ( Y0 @ Y2 )
                                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                       => ( ( ( !!
                              @ ^ [Y0: subst] :
                                  ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                            & ( !!
                              @ ^ [Y0: subst] :
                                  ( ( comp @ id @ Y0 )
                                  = Y0 ) )
                            & ( !!
                              @ ^ [Y0: subst] :
                                  ( ( comp @ Y0 @ id )
                                  = Y0 ) ) )
                         => ( ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: subst] :
                                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                              & ( !!
                                @ ^ [Y0: term] :
                                    ( ( sub @ Y0 @ id )
                                    = Y0 ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                               => ( Y0 = Y1 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y0: term] :
                                      ( !!
                                      @ ^ [Y1: term] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                                 => ( Y2 = Y3 ) ) ) ) ) )
                               => ( !!
                                  @ ^ [Y0: subst > term > term] :
                                      ( ( !!
                                        @ ^ [Y1: subst] :
                                            ( !!
                                            @ ^ [Y2: term] :
                                                ( !!
                                                @ ^ [Y3: subst] :
                                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                     => ( !!
                                        @ ^ [Y1: subst > term > term] :
                                            ( ( !!
                                              @ ^ [Y2: subst] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( !!
                                                      @ ^ [Y4: subst] :
                                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                           => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                                = ( lam @ ( Y1 @ sh @ one ) ) )
                                             => ( !!
                                                @ ^ [Y2: subst] :
                                                    ( !!
                                                    @ ^ [Y3: term] :
                                                        ( ( Y0 @ Y2 @ Y3 )
                                                        = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl65]) ).

thf(zip_derived_cl73,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( ( lam @ Y0 )
                  = ( lam @ Y1 ) )
               => ( Y0 = Y1 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( ( sub @ Y0 @ sh )
                    = ( sub @ Y1 @ sh ) )
                 => ( Y0 = Y1 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( lam @ Y0 )
                       != ( ap @ Y1 @ Y2 ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( Y0 @ Y1 )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                               => ( ( Y0 @ Y1 )
                                 => ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( !!
                                        @ ^ [Y3: term] :
                                            ( ( var @ Y3 )
                                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                     => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term > $o] :
                            ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( var @ Y1 )
                                 => ( Y0 @ Y1 ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y1 )
                                       => ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                             => ( ( !!
                                  @ ^ [Y1: term] :
                                      ( ( !!
                                        @ ^ [Y2: term] :
                                            ( ( Y0 @ Y2 )
                                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                     => ( Y0 @ ( lam @ Y1 ) ) ) )
                               => ( !!
                                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                     => ( ( ( !!
                            @ ^ [Y0: subst] :
                                ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                          & ( !!
                            @ ^ [Y0: subst] :
                                ( ( comp @ id @ Y0 )
                                = Y0 ) )
                          & ( !!
                            @ ^ [Y0: subst] :
                                ( ( comp @ Y0 @ id )
                                = Y0 ) ) )
                       => ( ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: subst] :
                                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                            & ( !!
                              @ ^ [Y0: term] :
                                  ( ( sub @ Y0 @ id )
                                  = Y0 ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                             => ( Y0 = Y1 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y0: term] :
                                    ( !!
                                    @ ^ [Y1: term] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                               => ( Y2 = Y3 ) ) ) ) ) )
                             => ( !!
                                @ ^ [Y0: subst > term > term] :
                                    ( ( !!
                                      @ ^ [Y1: subst] :
                                          ( !!
                                          @ ^ [Y2: term] :
                                              ( !!
                                              @ ^ [Y3: subst] :
                                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                   => ( !!
                                      @ ^ [Y1: subst > term > term] :
                                          ( ( !!
                                            @ ^ [Y2: subst] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( !!
                                                    @ ^ [Y4: subst] :
                                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                         => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                              = ( lam @ ( Y1 @ sh @ one ) ) )
                                           => ( !!
                                              @ ^ [Y2: subst] :
                                                  ( !!
                                                  @ ^ [Y3: term] :
                                                      ( ( Y0 @ Y2 @ Y3 )
                                                      = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl69]) ).

thf(zip_derived_cl78,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( ( ( sub @ Y0 @ sh )
                  = ( sub @ Y1 @ sh ) )
               => ( Y0 = Y1 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( ( lam @ Y0 )
                     != ( ap @ Y1 @ Y2 ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( Y0 @ Y1 )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                             => ( ( Y0 @ Y1 )
                               => ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( !!
                                      @ ^ [Y3: term] :
                                          ( ( var @ Y3 )
                                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                   => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term > $o] :
                          ( ( !!
                            @ ^ [Y1: term] :
                                ( ( var @ Y1 )
                               => ( Y0 @ Y1 ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y1 )
                                     => ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                           => ( ( !!
                                @ ^ [Y1: term] :
                                    ( ( !!
                                      @ ^ [Y2: term] :
                                          ( ( Y0 @ Y2 )
                                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                   => ( Y0 @ ( lam @ Y1 ) ) ) )
                             => ( !!
                                @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                   => ( ( ( !!
                          @ ^ [Y0: subst] :
                              ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                        & ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ id @ Y0 )
                              = Y0 ) )
                        & ( !!
                          @ ^ [Y0: subst] :
                              ( ( comp @ Y0 @ id )
                              = Y0 ) ) )
                     => ( ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: subst] :
                                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                          & ( !!
                            @ ^ [Y0: term] :
                                ( ( sub @ Y0 @ id )
                                = Y0 ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                           => ( Y0 = Y1 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y0: term] :
                                  ( !!
                                  @ ^ [Y1: term] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                             => ( Y2 = Y3 ) ) ) ) ) )
                           => ( !!
                              @ ^ [Y0: subst > term > term] :
                                  ( ( !!
                                    @ ^ [Y1: subst] :
                                        ( !!
                                        @ ^ [Y2: term] :
                                            ( !!
                                            @ ^ [Y3: subst] :
                                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                                 => ( !!
                                    @ ^ [Y1: subst > term > term] :
                                        ( ( !!
                                          @ ^ [Y2: subst] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( !!
                                                  @ ^ [Y4: subst] :
                                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                       => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                            = ( lam @ ( Y1 @ sh @ one ) ) )
                                         => ( !!
                                            @ ^ [Y2: subst] :
                                                ( !!
                                                @ ^ [Y3: term] :
                                                    ( ( Y0 @ Y2 @ Y3 )
                                                    = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl73]) ).

thf(zip_derived_cl84,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( ( lam @ Y0 )
                   != ( ap @ Y1 @ Y2 ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( Y0 @ Y1 )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                           => ( ( Y0 @ Y1 )
                             => ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( !!
                                    @ ^ [Y3: term] :
                                        ( ( var @ Y3 )
                                       => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                                 => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term > $o] :
                        ( ( !!
                          @ ^ [Y1: term] :
                              ( ( var @ Y1 )
                             => ( Y0 @ Y1 ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y1 )
                                   => ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                         => ( ( !!
                              @ ^ [Y1: term] :
                                  ( ( !!
                                    @ ^ [Y2: term] :
                                        ( ( Y0 @ Y2 )
                                       => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                                 => ( Y0 @ ( lam @ Y1 ) ) ) )
                           => ( !!
                              @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
                 => ( ( ( !!
                        @ ^ [Y0: subst] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                    = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                      & ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ id @ Y0 )
                            = Y0 ) )
                      & ( !!
                        @ ^ [Y0: subst] :
                            ( ( comp @ Y0 @ id )
                            = Y0 ) ) )
                   => ( ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: subst] :
                                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                        & ( !!
                          @ ^ [Y0: term] :
                              ( ( sub @ Y0 @ id )
                              = Y0 ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                         => ( Y0 = Y1 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y0: term] :
                                ( !!
                                @ ^ [Y1: term] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                           => ( Y2 = Y3 ) ) ) ) ) )
                         => ( !!
                            @ ^ [Y0: subst > term > term] :
                                ( ( !!
                                  @ ^ [Y1: subst] :
                                      ( !!
                                      @ ^ [Y2: term] :
                                          ( !!
                                          @ ^ [Y3: subst] :
                                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                               => ( !!
                                  @ ^ [Y1: subst > term > term] :
                                      ( ( !!
                                        @ ^ [Y2: subst] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( !!
                                                @ ^ [Y4: subst] :
                                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                     => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                          = ( lam @ ( Y1 @ sh @ one ) ) )
                                       => ( !!
                                          @ ^ [Y2: subst] :
                                              ( !!
                                              @ ^ [Y3: term] :
                                                  ( ( Y0 @ Y2 @ Y3 )
                                                  = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl78]) ).

thf(zip_derived_cl92,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] : ( (~) @ ( var @ ( ap @ Y0 @ Y1 ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( Y0 @ Y1 )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                         => ( ( Y0 @ Y1 )
                           => ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( !!
                                  @ ^ [Y3: term] :
                                      ( ( var @ Y3 )
                                     => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                               => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term > $o] :
                      ( ( !!
                        @ ^ [Y1: term] :
                            ( ( var @ Y1 )
                           => ( Y0 @ Y1 ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y1 )
                                 => ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                       => ( ( !!
                            @ ^ [Y1: term] :
                                ( ( !!
                                  @ ^ [Y2: term] :
                                      ( ( Y0 @ Y2 )
                                     => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                               => ( Y0 @ ( lam @ Y1 ) ) ) )
                         => ( !!
                            @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
               => ( ( ( !!
                      @ ^ [Y0: subst] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                  = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                    & ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ id @ Y0 )
                          = Y0 ) )
                    & ( !!
                      @ ^ [Y0: subst] :
                          ( ( comp @ Y0 @ id )
                          = Y0 ) ) )
                 => ( ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: subst] :
                                    ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                    = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                      & ( !!
                        @ ^ [Y0: term] :
                            ( ( sub @ Y0 @ id )
                            = Y0 ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                       => ( Y0 = Y1 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y0: term] :
                              ( !!
                              @ ^ [Y1: term] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                         => ( Y2 = Y3 ) ) ) ) ) )
                       => ( !!
                          @ ^ [Y0: subst > term > term] :
                              ( ( !!
                                @ ^ [Y1: subst] :
                                    ( !!
                                    @ ^ [Y2: term] :
                                        ( !!
                                        @ ^ [Y3: subst] :
                                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                             => ( !!
                                @ ^ [Y1: subst > term > term] :
                                    ( ( !!
                                      @ ^ [Y2: subst] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( !!
                                              @ ^ [Y4: subst] :
                                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                   => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                        = ( lam @ ( Y1 @ sh @ one ) ) )
                                     => ( !!
                                        @ ^ [Y2: subst] :
                                            ( !!
                                            @ ^ [Y3: term] :
                                                ( ( Y0 @ Y2 @ Y3 )
                                                = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl84]) ).

thf(zip_derived_cl102,plain,
    ~ ( ( !!
        @ ^ [Y0: term] : ( (~) @ ( var @ ( lam @ Y0 ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( Y0 @ Y1 ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y1 )
                         => ( ( Y0 @ Y2 )
                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( Y0 @ Y1 )
                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( !!
                          @ ^ [Y3: term] :
                              ( ( var @ Y3 )
                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                       => ( ( Y0 @ Y1 )
                         => ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y2 )
                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( !!
                                @ ^ [Y3: term] :
                                    ( ( var @ Y3 )
                                   => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                             => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term > $o] :
                    ( ( !!
                      @ ^ [Y1: term] :
                          ( ( var @ Y1 )
                         => ( Y0 @ Y1 ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y1 )
                               => ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                     => ( ( !!
                          @ ^ [Y1: term] :
                              ( ( !!
                                @ ^ [Y2: term] :
                                    ( ( Y0 @ Y2 )
                                   => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                             => ( Y0 @ ( lam @ Y1 ) ) ) )
                       => ( !!
                          @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
             => ( ( ( !!
                    @ ^ [Y0: subst] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                                = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                  & ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ id @ Y0 )
                        = Y0 ) )
                  & ( !!
                    @ ^ [Y0: subst] :
                        ( ( comp @ Y0 @ id )
                        = Y0 ) ) )
               => ( ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: subst] :
                                  ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                  = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                    & ( !!
                      @ ^ [Y0: term] :
                          ( ( sub @ Y0 @ id )
                          = Y0 ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                     => ( Y0 = Y1 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y0: term] :
                            ( !!
                            @ ^ [Y1: term] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                       => ( Y2 = Y3 ) ) ) ) ) )
                     => ( !!
                        @ ^ [Y0: subst > term > term] :
                            ( ( !!
                              @ ^ [Y1: subst] :
                                  ( !!
                                  @ ^ [Y2: term] :
                                      ( !!
                                      @ ^ [Y3: subst] :
                                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                           => ( !!
                              @ ^ [Y1: subst > term > term] :
                                  ( ( !!
                                    @ ^ [Y2: subst] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( !!
                                            @ ^ [Y4: subst] :
                                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                                 => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                      = ( lam @ ( Y1 @ sh @ one ) ) )
                                   => ( !!
                                      @ ^ [Y2: subst] :
                                          ( !!
                                          @ ^ [Y3: term] :
                                              ( ( Y0 @ Y2 @ Y3 )
                                              = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl92]) ).

thf(zip_derived_cl113,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( var @ Y1 )
                 => ( Y0 @ Y1 ) ) )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y1 )
                       => ( ( Y0 @ Y2 )
                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( Y0 @ Y1 )
                     => ( Y0 @ ( lam @ Y1 ) ) ) )
               => ( !!
                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( !!
                        @ ^ [Y3: term] :
                            ( ( var @ Y3 )
                           => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                     => ( ( Y0 @ Y1 )
                       => ( !!
                          @ ^ [Y3: term] :
                              ( ( var @ Y3 )
                             => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y1 )
                         => ( ( Y0 @ Y2 )
                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y2 )
                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( !!
                              @ ^ [Y3: term] :
                                  ( ( var @ Y3 )
                                 => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                           => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term > $o] :
                  ( ( !!
                    @ ^ [Y1: term] :
                        ( ( var @ Y1 )
                       => ( Y0 @ Y1 ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y1 )
                             => ( ( Y0 @ Y2 )
                               => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                   => ( ( !!
                        @ ^ [Y1: term] :
                            ( ( !!
                              @ ^ [Y2: term] :
                                  ( ( Y0 @ Y2 )
                                 => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                           => ( Y0 @ ( lam @ Y1 ) ) ) )
                     => ( !!
                        @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
           => ( ( ( !!
                  @ ^ [Y0: subst] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                              = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                & ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ id @ Y0 )
                      = Y0 ) )
                & ( !!
                  @ ^ [Y0: subst] :
                      ( ( comp @ Y0 @ id )
                      = Y0 ) ) )
             => ( ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: subst] :
                                ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                                = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                  & ( !!
                    @ ^ [Y0: term] :
                        ( ( sub @ Y0 @ id )
                        = Y0 ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                   => ( Y0 = Y1 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y0: term] :
                          ( !!
                          @ ^ [Y1: term] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                        = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                     => ( Y2 = Y3 ) ) ) ) ) )
                   => ( !!
                      @ ^ [Y0: subst > term > term] :
                          ( ( !!
                            @ ^ [Y1: subst] :
                                ( !!
                                @ ^ [Y2: term] :
                                    ( !!
                                    @ ^ [Y3: subst] :
                                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                         => ( !!
                            @ ^ [Y1: subst > term > term] :
                                ( ( !!
                                  @ ^ [Y2: subst] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( !!
                                          @ ^ [Y4: subst] :
                                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                               => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                    = ( lam @ ( Y1 @ sh @ one ) ) )
                                 => ( !!
                                    @ ^ [Y2: subst] :
                                        ( !!
                                        @ ^ [Y3: term] :
                                            ( ( Y0 @ Y2 @ Y3 )
                                            = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl102]) ).

thf(zip_derived_cl122,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( !!
                      @ ^ [Y3: term] :
                          ( ( var @ Y3 )
                         => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                   => ( ( Y0 @ Y1 )
                     => ( !!
                        @ ^ [Y3: term] :
                            ( ( var @ Y3 )
                           => ( Y0 @ ( sub @ Y3 @ ( push @ Y1 @ Y2 ) ) ) ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y1 )
                       => ( ( Y0 @ Y2 )
                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y2 )
                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                     => ( Y0 @ ( lam @ Y1 ) ) ) )
               => ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( !!
                            @ ^ [Y3: term] :
                                ( ( var @ Y3 )
                               => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                         => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term > $o] :
                ( ( !!
                  @ ^ [Y1: term] :
                      ( ( var @ Y1 )
                     => ( Y0 @ Y1 ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y1 )
                           => ( ( Y0 @ Y2 )
                             => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
                 => ( ( !!
                      @ ^ [Y1: term] :
                          ( ( !!
                            @ ^ [Y2: term] :
                                ( ( Y0 @ Y2 )
                               => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                         => ( Y0 @ ( lam @ Y1 ) ) ) )
                   => ( !!
                      @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
         => ( ( ( !!
                @ ^ [Y0: subst] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                            = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
              & ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ id @ Y0 )
                    = Y0 ) )
              & ( !!
                @ ^ [Y0: subst] :
                    ( ( comp @ Y0 @ id )
                    = Y0 ) ) )
           => ( ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: subst] :
                              ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                              = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
                & ( !!
                  @ ^ [Y0: term] :
                      ( ( sub @ Y0 @ id )
                      = Y0 ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                 => ( Y0 = Y1 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y0: term] :
                        ( !!
                        @ ^ [Y1: term] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                      = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                   => ( Y2 = Y3 ) ) ) ) ) )
                 => ( !!
                    @ ^ [Y0: subst > term > term] :
                        ( ( !!
                          @ ^ [Y1: subst] :
                              ( !!
                              @ ^ [Y2: term] :
                                  ( !!
                                  @ ^ [Y3: subst] :
                                      ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                      = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                       => ( !!
                          @ ^ [Y1: subst > term > term] :
                              ( ( !!
                                @ ^ [Y2: subst] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( !!
                                        @ ^ [Y4: subst] :
                                            ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                            = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                             => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                  = ( lam @ ( Y1 @ sh @ one ) ) )
                               => ( !!
                                  @ ^ [Y2: subst] :
                                      ( !!
                                      @ ^ [Y3: term] :
                                          ( ( Y0 @ Y2 @ Y3 )
                                          = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl113]) ).

thf(zip_derived_cl126,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( ( Y0 @ Y1 )
                     => ( ( Y0 @ Y2 )
                       => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y2 )
                         => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                   => ( Y0 @ ( lam @ Y1 ) ) ) )
             => ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( !!
                          @ ^ [Y3: term] :
                              ( ( var @ Y3 )
                             => ( Y0 @ ( sub @ Y3 @ Y2 ) ) ) )
                       => ( Y0 @ ( sub @ Y1 @ Y2 ) ) ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term > $o] :
              ( ( !!
                @ ^ [Y1: term] :
                    ( ( var @ Y1 )
                   => ( Y0 @ Y1 ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( ( Y0 @ Y1 )
                         => ( ( Y0 @ Y2 )
                           => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
               => ( ( !!
                    @ ^ [Y1: term] :
                        ( ( !!
                          @ ^ [Y2: term] :
                              ( ( Y0 @ Y2 )
                             => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                       => ( Y0 @ ( lam @ Y1 ) ) ) )
                 => ( !!
                    @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
       => ( ( ( !!
              @ ^ [Y0: subst] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                          = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
            & ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ id @ Y0 )
                  = Y0 ) )
            & ( !!
              @ ^ [Y0: subst] :
                  ( ( comp @ Y0 @ id )
                  = Y0 ) ) )
         => ( ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: subst] :
                            ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                            = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
              & ( !!
                @ ^ [Y0: term] :
                    ( ( sub @ Y0 @ id )
                    = Y0 ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                               => ( Y0 = Y1 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y0: term] :
                      ( !!
                      @ ^ [Y1: term] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                    = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                                 => ( Y2 = Y3 ) ) ) ) ) )
               => ( !!
                  @ ^ [Y0: subst > term > term] :
                      ( ( !!
                        @ ^ [Y1: subst] :
                            ( !!
                            @ ^ [Y2: term] :
                                ( !!
                                @ ^ [Y3: subst] :
                                    ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                    = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                     => ( !!
                        @ ^ [Y1: subst > term > term] :
                            ( ( !!
                              @ ^ [Y2: subst] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( !!
                                      @ ^ [Y4: subst] :
                                          ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                          = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                           => ( ( ( lam @ ( Y0 @ sh @ one ) )
                                = ( lam @ ( Y1 @ sh @ one ) ) )
                             => ( !!
                                @ ^ [Y2: subst] :
                                    ( !!
                                    @ ^ [Y3: term] :
                                        ( ( Y0 @ Y2 @ Y3 )
                                        = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl122]) ).

thf(zip_derived_cl130,plain,
    ~ ( ( !!
        @ ^ [Y0: term > $o] :
            ( ( !!
              @ ^ [Y1: term] :
                  ( ( var @ Y1 )
                 => ( Y0 @ Y1 ) ) )
           => ( ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( Y0 @ Y1 )
                       => ( ( Y0 @ Y2 )
                         => ( Y0 @ ( ap @ Y1 @ Y2 ) ) ) ) ) )
             => ( ( !!
                  @ ^ [Y1: term] :
                      ( ( !!
                        @ ^ [Y2: term] :
                            ( ( Y0 @ Y2 )
                           => ( Y0 @ ( sub @ Y1 @ ( push @ Y2 @ id ) ) ) ) )
                     => ( Y0 @ ( lam @ Y1 ) ) ) )
               => ( !!
                  @ ^ [Y1: term] : ( Y0 @ Y1 ) ) ) ) ) )
     => ( ( ( !!
            @ ^ [Y0: subst] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                        = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
          & ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ id @ Y0 )
                = Y0 ) )
          & ( !!
            @ ^ [Y0: subst] :
                ( ( comp @ Y0 @ id )
                = Y0 ) ) )
       => ( ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: subst] :
                          ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                          = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
            & ( !!
              @ ^ [Y0: term] :
                  ( ( sub @ Y0 @ id )
                  = Y0 ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                             => ( Y0 = Y1 ) ) ) ) ) )
           => ( ( !!
                @ ^ [Y0: term] :
                    ( !!
                    @ ^ [Y1: term] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                  = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                               => ( Y2 = Y3 ) ) ) ) ) )
             => ( !!
                @ ^ [Y0: subst > term > term] :
                    ( ( !!
                      @ ^ [Y1: subst] :
                          ( !!
                          @ ^ [Y2: term] :
                              ( !!
                              @ ^ [Y3: subst] :
                                  ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                  = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                   => ( !!
                      @ ^ [Y1: subst > term > term] :
                          ( ( !!
                            @ ^ [Y2: subst] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( !!
                                    @ ^ [Y4: subst] :
                                        ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                        = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                         => ( ( ( lam @ ( Y0 @ sh @ one ) )
                              = ( lam @ ( Y1 @ sh @ one ) ) )
                           => ( !!
                              @ ^ [Y2: subst] :
                                  ( !!
                                  @ ^ [Y3: term] :
                                      ( ( Y0 @ Y2 @ Y3 )
                                      = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl126]) ).

thf(zip_derived_cl135,plain,
    ~ ( ( ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( comp @ ( comp @ Y0 @ Y1 ) @ Y2 )
                      = ( comp @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
        & ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ id @ Y0 )
              = Y0 ) )
        & ( !!
          @ ^ [Y0: subst] :
              ( ( comp @ Y0 @ id )
              = Y0 ) ) )
     => ( ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: subst] :
                        ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                        = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
          & ( !!
            @ ^ [Y0: term] :
                ( ( sub @ Y0 @ id )
                = Y0 ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                           => ( Y0 = Y1 ) ) ) ) ) )
         => ( ( !!
              @ ^ [Y0: term] :
                  ( !!
                  @ ^ [Y1: term] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                                = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                             => ( Y2 = Y3 ) ) ) ) ) )
           => ( !!
              @ ^ [Y0: subst > term > term] :
                  ( ( !!
                    @ ^ [Y1: subst] :
                        ( !!
                        @ ^ [Y2: term] :
                            ( !!
                            @ ^ [Y3: subst] :
                                ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                                = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
                 => ( !!
                    @ ^ [Y1: subst > term > term] :
                        ( ( !!
                          @ ^ [Y2: subst] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( !!
                                  @ ^ [Y4: subst] :
                                      ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                      = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                       => ( ( ( lam @ ( Y0 @ sh @ one ) )
                            = ( lam @ ( Y1 @ sh @ one ) ) )
                         => ( !!
                            @ ^ [Y2: subst] :
                                ( !!
                                @ ^ [Y3: term] :
                                    ( ( Y0 @ Y2 @ Y3 )
                                    = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl130]) ).

thf(zip_derived_cl142,plain,
    ~ ( ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: subst] :
                      ( ( sub @ ( sub @ Y0 @ Y1 ) @ Y2 )
                      = ( sub @ Y0 @ ( comp @ Y1 @ Y2 ) ) ) ) ) )
        & ( !!
          @ ^ [Y0: term] :
              ( ( sub @ Y0 @ id )
              = Y0 ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                         => ( Y0 = Y1 ) ) ) ) ) )
       => ( ( !!
            @ ^ [Y0: term] :
                ( !!
                @ ^ [Y1: term] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                              = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                           => ( Y2 = Y3 ) ) ) ) ) )
         => ( !!
            @ ^ [Y0: subst > term > term] :
                ( ( !!
                  @ ^ [Y1: subst] :
                      ( !!
                      @ ^ [Y2: term] :
                          ( !!
                          @ ^ [Y3: subst] :
                              ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                              = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
               => ( !!
                  @ ^ [Y1: subst > term > term] :
                      ( ( !!
                        @ ^ [Y2: subst] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( !!
                                @ ^ [Y4: subst] :
                                    ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                    = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                     => ( ( ( lam @ ( Y0 @ sh @ one ) )
                          = ( lam @ ( Y1 @ sh @ one ) ) )
                       => ( !!
                          @ ^ [Y2: subst] :
                              ( !!
                              @ ^ [Y3: term] :
                                  ( ( Y0 @ Y2 @ Y3 )
                                  = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl135]) ).

thf(zip_derived_cl154,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                       => ( Y0 = Y1 ) ) ) ) ) )
     => ( ( !!
          @ ^ [Y0: term] :
              ( !!
              @ ^ [Y1: term] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                            = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                         => ( Y2 = Y3 ) ) ) ) ) )
       => ( !!
          @ ^ [Y0: subst > term > term] :
              ( ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( !!
                        @ ^ [Y3: subst] :
                            ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                            = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
             => ( !!
                @ ^ [Y1: subst > term > term] :
                    ( ( !!
                      @ ^ [Y2: subst] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( !!
                              @ ^ [Y4: subst] :
                                  ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                  = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                   => ( ( ( lam @ ( Y0 @ sh @ one ) )
                        = ( lam @ ( Y1 @ sh @ one ) ) )
                     => ( !!
                        @ ^ [Y2: subst] :
                            ( !!
                            @ ^ [Y3: term] :
                                ( ( Y0 @ Y2 @ Y3 )
                                = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl142]) ).

thf(zip_derived_cl167,plain,
    ~ ( ( !!
        @ ^ [Y0: term] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: term] :
                        ( ( ( ap @ ( sub @ Y0 @ id ) @ Y2 )
                          = ( ap @ ( sub @ Y1 @ id ) @ Y3 ) )
                       => ( Y2 = Y3 ) ) ) ) ) )
     => ( !!
        @ ^ [Y0: subst > term > term] :
            ( ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
           => ( !!
              @ ^ [Y1: subst > term > term] :
                  ( ( !!
                    @ ^ [Y2: subst] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( !!
                            @ ^ [Y4: subst] :
                                ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                                = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
                 => ( ( ( lam @ ( Y0 @ sh @ one ) )
                      = ( lam @ ( Y1 @ sh @ one ) ) )
                   => ( !!
                      @ ^ [Y2: subst] :
                          ( !!
                          @ ^ [Y3: term] :
                              ( ( Y0 @ Y2 @ Y3 )
                              = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl154]) ).

thf(zip_derived_cl186,plain,
    ~ ( !!
      @ ^ [Y0: subst > term > term] :
          ( ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
         => ( !!
            @ ^ [Y1: subst > term > term] :
                ( ( !!
                  @ ^ [Y2: subst] :
                      ( !!
                      @ ^ [Y3: term] :
                          ( !!
                          @ ^ [Y4: subst] :
                              ( ( sub @ ( Y1 @ Y2 @ Y3 ) @ Y4 )
                              = ( Y1 @ ( comp @ Y2 @ Y4 ) @ ( sub @ Y3 @ Y4 ) ) ) ) ) )
               => ( ( ( lam @ ( Y0 @ sh @ one ) )
                    = ( lam @ ( Y1 @ sh @ one ) ) )
                 => ( !!
                    @ ^ [Y2: subst] :
                        ( !!
                        @ ^ [Y3: term] :
                            ( ( Y0 @ Y2 @ Y3 )
                            = ( Y1 @ Y2 @ Y3 ) ) ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl167]) ).

thf(zip_derived_cl202,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( '#sk263' @ Y0 @ Y1 ) @ Y2 )
                    = ( '#sk263' @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
     => ( !!
        @ ^ [Y0: subst > term > term] :
            ( ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( !!
                      @ ^ [Y3: subst] :
                          ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                          = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
           => ( ( ( lam @ ( '#sk263' @ sh @ one ) )
                = ( lam @ ( Y0 @ sh @ one ) ) )
             => ( !!
                @ ^ [Y1: subst] :
                    ( !!
                    @ ^ [Y2: term] :
                        ( ( '#sk263' @ Y1 @ Y2 )
                        = ( Y0 @ Y1 @ Y2 ) ) ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl186]) ).

thf(zip_derived_cl218,plain,
    ~ ( !!
      @ ^ [Y0: subst > term > term] :
          ( ( !!
            @ ^ [Y1: subst] :
                ( !!
                @ ^ [Y2: term] :
                    ( !!
                    @ ^ [Y3: subst] :
                        ( ( sub @ ( Y0 @ Y1 @ Y2 ) @ Y3 )
                        = ( Y0 @ ( comp @ Y1 @ Y3 ) @ ( sub @ Y2 @ Y3 ) ) ) ) ) )
         => ( ( ( lam @ ( '#sk263' @ sh @ one ) )
              = ( lam @ ( Y0 @ sh @ one ) ) )
           => ( !!
              @ ^ [Y1: subst] :
                  ( !!
                  @ ^ [Y2: term] :
                      ( ( '#sk263' @ Y1 @ Y2 )
                      = ( Y0 @ Y1 @ Y2 ) ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl202]) ).

thf(zip_derived_cl235,plain,
    ~ ( ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( !!
                @ ^ [Y2: subst] :
                    ( ( sub @ ( '#sk374' @ Y0 @ Y1 ) @ Y2 )
                    = ( '#sk374' @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) )
     => ( ( ( lam @ ( '#sk263' @ sh @ one ) )
          = ( lam @ ( '#sk374' @ sh @ one ) ) )
       => ( !!
          @ ^ [Y0: subst] :
              ( !!
              @ ^ [Y1: term] :
                  ( ( '#sk263' @ Y0 @ Y1 )
                  = ( '#sk374' @ Y0 @ Y1 ) ) ) ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl218]) ).

thf(zip_derived_cl246,plain,
    ~ ( ( ( lam @ ( '#sk263' @ sh @ one ) )
        = ( lam @ ( '#sk374' @ sh @ one ) ) )
     => ( !!
        @ ^ [Y0: subst] :
            ( !!
            @ ^ [Y1: term] :
                ( ( '#sk263' @ Y0 @ Y1 )
                = ( '#sk374' @ Y0 @ Y1 ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl235]) ).

thf(zip_derived_cl257,plain,
    ( ( lam @ ( '#sk263' @ sh @ one ) )
    = ( lam @ ( '#sk374' @ sh @ one ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl246]) ).

thf(zip_derived_cl269,plain,
    ( ( lam @ ( '#sk263' @ sh @ one ) )
    = ( lam @ ( '#sk374' @ sh @ one ) ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl257]) ).

thf(zip_derived_cl77,plain,
    ( !!
    @ ^ [Y0: term] :
        ( !!
        @ ^ [Y1: term] :
            ( ( ( lam @ Y0 )
              = ( lam @ Y1 ) )
           => ( Y0 = Y1 ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl73]) ).

thf(zip_derived_cl82,plain,
    ! [X2: term] :
      ( !!
      @ ^ [Y0: term] :
          ( ( ( lam @ X2 )
            = ( lam @ Y0 ) )
         => ( X2 = Y0 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl77]) ).

thf(zip_derived_cl89,plain,
    ! [X2: term,X4: term] :
      ( ( ( lam @ X2 )
        = ( lam @ X4 ) )
     => ( X2 = X4 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl82]) ).

thf(zip_derived_cl98,plain,
    ! [X2: term,X4: term] :
      ( ( ( lam @ X2 )
       != ( lam @ X4 ) )
      | ( X2 = X4 ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl89]) ).

thf(zip_derived_cl108,plain,
    ! [X2: term,X4: term] :
      ( ( ( lam @ X2 )
       != ( lam @ X4 ) )
      | ( X2 = X4 ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl98]) ).

thf(zip_derived_cl320,plain,
    ! [X0: term] :
      ( ( ( lam @ X0 )
       != ( lam @ ( '#sk263' @ sh @ one ) ) )
      | ( X0
        = ( '#sk374' @ sh @ one ) ) ),
    inference('sup-',[status(thm)],[zip_derived_cl269,zip_derived_cl108]) ).

thf(zip_derived_cl1519,plain,
    ( ( '#sk263' @ sh @ one )
    = ( '#sk374' @ sh @ one ) ),
    inference(eq_res,[status(thm)],[zip_derived_cl320]) ).

thf(zip_derived_cl28,plain,
    ( !!
    @ ^ [Y0: term] :
        ( !!
        @ ^ [Y1: subst] :
            ( ( comp @ sh @ ( push @ Y0 @ Y1 ) )
            = Y1 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl24]) ).

thf(zip_derived_cl32,plain,
    ! [X2: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( comp @ sh @ ( push @ X2 @ Y0 ) )
          = Y0 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl28]) ).

thf(zip_derived_cl36,plain,
    ! [X2: term,X4: subst] :
      ( ( comp @ sh @ ( push @ X2 @ X4 ) )
      = X4 ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl32]) ).

thf(zip_derived_cl40,plain,
    ! [X2: term,X4: subst] :
      ( ( comp @ sh @ ( push @ X2 @ X4 ) )
      = X4 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl36]) ).

thf(zip_derived_cl245,plain,
    ( !!
    @ ^ [Y0: subst] :
        ( !!
        @ ^ [Y1: term] :
            ( !!
            @ ^ [Y2: subst] :
                ( ( sub @ ( '#sk374' @ Y0 @ Y1 ) @ Y2 )
                = ( '#sk374' @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl235]) ).

thf(zip_derived_cl256,plain,
    ! [X2: subst] :
      ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: subst] :
              ( ( sub @ ( '#sk374' @ X2 @ Y0 ) @ Y1 )
              = ( '#sk374' @ ( comp @ X2 @ Y1 ) @ ( sub @ Y0 @ Y1 ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl245]) ).

thf(zip_derived_cl268,plain,
    ! [X2: subst,X4: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( sub @ ( '#sk374' @ X2 @ X4 ) @ Y0 )
          = ( '#sk374' @ ( comp @ X2 @ Y0 ) @ ( sub @ X4 @ Y0 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl256]) ).

thf(zip_derived_cl274,plain,
    ! [X2: subst,X4: term,X6: subst] :
      ( ( sub @ ( '#sk374' @ X2 @ X4 ) @ X6 )
      = ( '#sk374' @ ( comp @ X2 @ X6 ) @ ( sub @ X4 @ X6 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl268]) ).

thf(zip_derived_cl280,plain,
    ! [X2: subst,X4: term,X6: subst] :
      ( ( sub @ ( '#sk374' @ X2 @ X4 ) @ X6 )
      = ( '#sk374' @ ( comp @ X2 @ X6 ) @ ( sub @ X4 @ X6 ) ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl274]) ).

thf(zip_derived_cl7329,plain,
    ! [X0: subst,X1: term,X2: term] :
      ( ( sub @ ( '#sk374' @ sh @ X2 ) @ ( push @ X1 @ X0 ) )
      = ( '#sk374' @ X0 @ ( sub @ X2 @ ( push @ X1 @ X0 ) ) ) ),
    inference('sup+',[status(thm)],[zip_derived_cl40,zip_derived_cl280]) ).

thf(zip_derived_cl8268,plain,
    ! [X0: subst,X1: term] :
      ( ( sub @ ( '#sk263' @ sh @ one ) @ ( push @ X1 @ X0 ) )
      = ( '#sk374' @ X0 @ ( sub @ one @ ( push @ X1 @ X0 ) ) ) ),
    inference('sup+',[status(thm)],[zip_derived_cl1519,zip_derived_cl7329]) ).

thf(zip_derived_cl1519_001,plain,
    ( ( '#sk263' @ sh @ one )
    = ( '#sk374' @ sh @ one ) ),
    inference(eq_res,[status(thm)],[zip_derived_cl320]) ).

thf(zip_derived_cl1519_002,plain,
    ( ( '#sk263' @ sh @ one )
    = ( '#sk374' @ sh @ one ) ),
    inference(eq_res,[status(thm)],[zip_derived_cl320]) ).

thf(zip_derived_cl40_003,plain,
    ! [X2: term,X4: subst] :
      ( ( comp @ sh @ ( push @ X2 @ X4 ) )
      = X4 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl36]) ).

thf(zip_derived_cl217,plain,
    ( !!
    @ ^ [Y0: subst] :
        ( !!
        @ ^ [Y1: term] :
            ( !!
            @ ^ [Y2: subst] :
                ( ( sub @ ( '#sk263' @ Y0 @ Y1 ) @ Y2 )
                = ( '#sk263' @ ( comp @ Y0 @ Y2 ) @ ( sub @ Y1 @ Y2 ) ) ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl202]) ).

thf(zip_derived_cl234,plain,
    ! [X2: subst] :
      ( !!
      @ ^ [Y0: term] :
          ( !!
          @ ^ [Y1: subst] :
              ( ( sub @ ( '#sk263' @ X2 @ Y0 ) @ Y1 )
              = ( '#sk263' @ ( comp @ X2 @ Y1 ) @ ( sub @ Y0 @ Y1 ) ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl217]) ).

thf(zip_derived_cl244,plain,
    ! [X2: subst,X4: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( sub @ ( '#sk263' @ X2 @ X4 ) @ Y0 )
          = ( '#sk263' @ ( comp @ X2 @ Y0 ) @ ( sub @ X4 @ Y0 ) ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl234]) ).

thf(zip_derived_cl255,plain,
    ! [X2: subst,X4: term,X6: subst] :
      ( ( sub @ ( '#sk263' @ X2 @ X4 ) @ X6 )
      = ( '#sk263' @ ( comp @ X2 @ X6 ) @ ( sub @ X4 @ X6 ) ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl244]) ).

thf(zip_derived_cl267,plain,
    ! [X2: subst,X4: term,X6: subst] :
      ( ( sub @ ( '#sk263' @ X2 @ X4 ) @ X6 )
      = ( '#sk263' @ ( comp @ X2 @ X6 ) @ ( sub @ X4 @ X6 ) ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl255]) ).

thf(zip_derived_cl6502,plain,
    ! [X0: subst,X1: term,X2: term] :
      ( ( sub @ ( '#sk263' @ sh @ X2 ) @ ( push @ X1 @ X0 ) )
      = ( '#sk263' @ X0 @ ( sub @ X2 @ ( push @ X1 @ X0 ) ) ) ),
    inference('sup+',[status(thm)],[zip_derived_cl40,zip_derived_cl267]) ).

thf(zip_derived_cl6597,plain,
    ! [X0: subst,X1: term] :
      ( ( sub @ ( '#sk374' @ sh @ one ) @ ( push @ X1 @ X0 ) )
      = ( '#sk263' @ X0 @ ( sub @ one @ ( push @ X1 @ X0 ) ) ) ),
    inference('sup+',[status(thm)],[zip_derived_cl1519,zip_derived_cl6502]) ).

thf(zip_derived_cl4,plain,
    ( !!
    @ ^ [Y0: term] :
        ( !!
        @ ^ [Y1: subst] :
            ( ( sub @ one @ ( push @ Y0 @ Y1 ) )
            = Y0 ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl2]) ).

thf(zip_derived_cl7,plain,
    ! [X2: term] :
      ( !!
      @ ^ [Y0: subst] :
          ( ( sub @ one @ ( push @ X2 @ Y0 ) )
          = X2 ) ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl4]) ).

thf(zip_derived_cl11,plain,
    ! [X2: term,X4: subst] :
      ( ( sub @ one @ ( push @ X2 @ X4 ) )
      = X2 ),
    inference(lazy_cnf_forall,[status(thm)],[zip_derived_cl7]) ).

thf(zip_derived_cl16,plain,
    ! [X2: term,X4: subst] :
      ( ( sub @ one @ ( push @ X2 @ X4 ) )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl11]) ).

thf(zip_derived_cl6619,plain,
    ! [X0: subst,X1: term] :
      ( ( sub @ ( '#sk374' @ sh @ one ) @ ( push @ X1 @ X0 ) )
      = ( '#sk263' @ X0 @ X1 ) ),
    inference(demod,[status(thm)],[zip_derived_cl6597,zip_derived_cl16]) ).

thf(zip_derived_cl6856,plain,
    ! [X0: term,X1: subst] :
      ( ( sub @ ( '#sk263' @ sh @ one ) @ ( push @ X0 @ X1 ) )
      = ( '#sk263' @ X1 @ X0 ) ),
    inference('sup+',[status(thm)],[zip_derived_cl1519,zip_derived_cl6619]) ).

thf(zip_derived_cl16_004,plain,
    ! [X2: term,X4: subst] :
      ( ( sub @ one @ ( push @ X2 @ X4 ) )
      = X2 ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl11]) ).

thf(zip_derived_cl8363,plain,
    ! [X0: subst,X1: term] :
      ( ( '#sk263' @ X0 @ X1 )
      = ( '#sk374' @ X0 @ X1 ) ),
    inference(demod,[status(thm)],[zip_derived_cl8268,zip_derived_cl6856,zip_derived_cl16]) ).

thf(zip_derived_cl258,plain,
    ~ ( !!
      @ ^ [Y0: subst] :
          ( !!
          @ ^ [Y1: term] :
              ( ( '#sk263' @ Y0 @ Y1 )
              = ( '#sk374' @ Y0 @ Y1 ) ) ) ),
    inference(lazy_cnf_imply,[status(thm)],[zip_derived_cl246]) ).

thf(zip_derived_cl270,plain,
    ~ ( !!
      @ ^ [Y0: term] :
          ( ( '#sk263' @ '#sk467' @ Y0 )
          = ( '#sk374' @ '#sk467' @ Y0 ) ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl258]) ).

thf(zip_derived_cl275,plain,
    ( ( '#sk263' @ '#sk467' @ '#sk491' )
   != ( '#sk374' @ '#sk467' @ '#sk491' ) ),
    inference(lazy_cnf_exists,[status(thm)],[zip_derived_cl270]) ).

thf(zip_derived_cl281,plain,
    ( ( '#sk263' @ '#sk467' @ '#sk491' )
   != ( '#sk374' @ '#sk467' @ '#sk491' ) ),
    inference('simplify nested equalities',[status(thm)],[zip_derived_cl275]) ).

thf(zip_derived_cl8405,plain,
    ( ( '#sk374' @ '#sk467' @ '#sk491' )
   != ( '#sk374' @ '#sk467' @ '#sk491' ) ),
    inference('sup-',[status(thm)],[zip_derived_cl8363,zip_derived_cl281]) ).

thf(zip_derived_cl8432,plain,
    $false,
    inference(simplify,[status(thm)],[zip_derived_cl8405]) ).


%------------------------------------------------------------------------------
%----ORIGINAL SYSTEM OUTPUT
% 0.12/0.12  % Problem  : ALG258^1 : TPTP v8.1.2. Bugfixed v5.2.0.
% 0.12/0.13  % Command  : python3 /export/starexec/sandbox2/solver/bin/portfolio.lams.parallel.py %s %d /export/starexec/sandbox2/tmp/tmp.Hqsl0p5v8H true
% 0.13/0.34  % Computer : n024.cluster.edu
% 0.13/0.34  % Model    : x86_64 x86_64
% 0.13/0.34  % CPU      : Intel(R) Xeon(R) CPU E5-2620 v4 @ 2.10GHz
% 0.13/0.34  % Memory   : 8042.1875MB
% 0.13/0.34  % OS       : Linux 3.10.0-693.el7.x86_64
% 0.13/0.34  % CPULimit : 300
% 0.13/0.34  % WCLimit  : 300
% 0.13/0.34  % DateTime : Mon Aug 28 03:59:53 EDT 2023
% 0.13/0.34  % CPUTime  : 
% 0.13/0.34  % Running portfolio for 300 s
% 0.13/0.34  % File         : /export/starexec/sandbox2/benchmark/theBenchmark.p
% 0.13/0.34  % Number of cores: 8
% 0.13/0.35  % Python version: Python 3.6.8
% 0.13/0.35  % Running in HO mode
% 0.20/0.64  % Total configuration time : 828
% 0.20/0.64  % Estimated wc time : 1656
% 0.20/0.64  % Estimated cpu time (8 cpus) : 207.0
% 0.20/0.72  % /export/starexec/sandbox2/solver/bin/lams/40_c.s.sh running for 80s
% 0.20/0.72  % /export/starexec/sandbox2/solver/bin/lams/35_full_unif4.sh running for 80s
% 1.18/0.73  % /export/starexec/sandbox2/solver/bin/lams/40_c_ic.sh running for 80s
% 1.18/0.74  % /export/starexec/sandbox2/solver/bin/lams/40_noforms.sh running for 90s
% 1.18/0.74  % /export/starexec/sandbox2/solver/bin/lams/15_e_short1.sh running for 30s
% 1.18/0.74  % /export/starexec/sandbox2/solver/bin/lams/40_b.comb.sh running for 70s
% 1.33/0.77  % /export/starexec/sandbox2/solver/bin/lams/20_acsne_simpl.sh running for 40s
% 1.33/0.77  % /export/starexec/sandbox2/solver/bin/lams/30_sp5.sh running for 60s
% 1.33/0.79  % /export/starexec/sandbox2/solver/bin/lams/30_b.l.sh running for 90s
% 19.23/3.06  % Solved by lams/20_acsne_simpl.sh.
% 19.23/3.06  % done 444 iterations in 2.133s
% 19.23/3.06  % SZS status Theorem for '/export/starexec/sandbox2/benchmark/theBenchmark.p'
% 19.23/3.06  % SZS output start Refutation
% See solution above
% 19.23/3.08  
% 19.23/3.08  
% 19.23/3.08  % Terminating...
% 19.89/3.16  % Runner terminated.
% 19.89/3.17  % Zipperpin 1.5 exiting
%------------------------------------------------------------------------------